diff --git a/build/Makefile b/build/Makefile
index db3bd45b05784991f1c52ce051d8f2174a462108..d13bbb70adc7cae05ece1be8d59727d20dc030c5 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -4,8 +4,8 @@
 # 
 # 1.  As a subdirectory from the toplevel, for automake
 #
-# 2. A wrapper around the kernel's makefile when building modules, to
-#    possibly override the .config file
+# 2.  A wrapper around the kernel's makefile when building modules, to
+#     possibly override the .config file
 #
 # 3.  At configure time, as the toplevel module dir for building
 #     kernel tests
@@ -21,6 +21,8 @@ include autoMakefile
 else
 
 # case #2
+# Note that this comes from make -C $LINUX -f $LUSTRE/build/Makefile
+# So the include Makefile includes $LINUX/Makefile, not this file
 include $(LUSTRE_LINUX_CONFIG)
 include Makefile
 
diff --git a/build/autoconf/lustre-build-linux.m4 b/build/autoconf/lustre-build-linux.m4
index a2dd4a0ca5240f9b5ae61be79f21b4083e62e79f..5c5dc95ad228d23f799cb2df0677c4670fbd15f4 100644
--- a/build/autoconf/lustre-build-linux.m4
+++ b/build/autoconf/lustre-build-linux.m4
@@ -496,7 +496,7 @@ LB_LINUX_TRY_COMPILE([
 #
 # LB_LINUX_FUNC_ZAP_PAGE_RANGE
 #
-# if zap_page_range() taks a vma arg
+# if zap_page_range() takes a vma arg
 #
 AC_DEFUN([LB_LINUX_FUNC_ZAP_PAGE_RANGE],
 [AC_MSG_CHECKING([if zap_pag_range with vma parameter])
diff --git a/build/autoconf/lustre-build.m4 b/build/autoconf/lustre-build.m4
index 4d9f666134e6e89173054e9965bb740db769677b..c20ed73921021247b8424b33bff0ee28eff24eaa 100644
--- a/build/autoconf/lustre-build.m4
+++ b/build/autoconf/lustre-build.m4
@@ -125,28 +125,24 @@ AC_ARG_ENABLE([modules],
 	AC_HELP_STRING([--disable-modules],
 			[disable building of Lustre kernel modules]),
 	[],[
-		case $target_os in
-			linux* | darwin*)
-				enable_modules='yes'
-				;;
-			*)
-				enable_modules='no'
-				;;
-		esac
+		LC_TARGET_SUPPORTED([
+			enable_modules='yes'
+		],[
+			enable_modules='no'
+		])
 	])
 AC_MSG_RESULT([$enable_modules ($target_os)])
 
 if test x$enable_modules = xyes ; then
 	case $target_os in
 		linux*)
-			LC_LINUX_SUPPORTED([LB_PROG_LINUX],
-				[AC_MSG_ERROR([Modules are not supported on $target_os])])
+			LB_PROG_LINUX
 			;;
 		darwin*)
-			LC_DARWIN_SUPPORTED([LB_PROG_DARWIN],
-				[AC_MSG_ERROR([Modules are not supported on $target_os])])
+			LB_PROG_DARWIN
 			;;
 		*)
+			# This is strange - Lustre supports a target we don't
 			AC_MSG_ERROR([Modules are not supported on $target_os])
 			;;
 	esac
diff --git a/lustrecvs b/lustrecvs
index 982e9d97bcd449be232ec33723bdbb4ea1a9f798..70ac2a038e1805f3afec84ae46970a7051f63721 100755
--- a/lustrecvs
+++ b/lustrecvs
@@ -51,18 +51,23 @@ cvs_cmd ()
     local dir="$1"
     local module="$2"
     local tag="$3"
-    local cvstag=""
+    local cotag=""
+    local update=""
 
-    if [ "$tag" != "HEAD" ] ; then
-	cvstag="-r $tag"
+    if [ "$tag" = "HEAD" ] ; then
+	cotag=""
+	uptag="-A"
+    else
+	cotag="-r $tag"
+	uptag="-r $tag"
     fi
 
     if [ -d "$dir" ] ; then
 	echo "$progname: Updating $dir to $tag"
-	( cd "$dir" && cvs up $cvstag )
+	( cd "$dir" && cvs up $uptag )
     else
 	echo "$progname: Checking out $dir from $tag"
-	cvs co $cvstag -d "$dir" "$module"
+	cvs co $cotag -d "$dir" "$module"
     fi
 }