diff --git a/build/buildcvs b/build/buildcvs
index 4d0a263426b1dc05fc80e3e2196ea4bbbb902941..acd89ecc6fc280053e378890cc1ed4bc8e4a3505 100644
--- a/build/buildcvs
+++ b/build/buildcvs
@@ -1,5 +1,4 @@
 # This file is sourced by lustre/lustrecvs
-set -vx
 
 portalstag="HEAD"
 libsysiotag="LIBSYSIO_HEAD_20040809"
@@ -45,7 +44,7 @@ case "$lustretag" in
 	portalstag="b_port_step"
 	;;
 
-    v1_[0-3]*|v1_4_0*)
+    v1_[0-3]*|v1_4_0*|[A-Z]*)
 	portalstag="$lustretag"
 	;;
 
diff --git a/lustrecvs b/lustrecvs
index 9154775a00a3fbc3cf0219b6ffe8cb35c34e6e4a..30d6ff853a553a7f02f56b5fe7f048db2bee7702 100755
--- a/lustrecvs
+++ b/lustrecvs
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+LC_COLLATE="C"
 progname="${0##*/}"
 
 warn ()
@@ -23,6 +24,12 @@ Usage: $progname lustretag
 EOF
 }
 
+if [ -z "$LUSTRECVS_UPDATED" ] ; then
+    cvs up "$0" || fatal 1 "Error updating lustrecvs"
+    export LUSTRECVS_UPDATED=yes
+    exec "$0" "$@"
+fi
+
 buildtag="HEAD"
 lustretag="$1"