diff --git a/build/land1.sh b/build/land1.sh
index b0728c8132df53ac8a09a7977381198804cbd5c8..a4f56da99b0649d4f0de348f90628ab1321ae8c4 100755
--- a/build/land1.sh
+++ b/build/land1.sh
@@ -88,16 +88,16 @@ else
 fi
 echo "done"
 
-echo -n "Tagging as ${PARENT}_${CHILD}_LAND_PARENT_$date ..."
-$CVS tag ${PARENT}_${CHILD}_LAND_PARENT_$date $dir
+echo -n "Create land-to point on $parent as ${PARENT}_${CHILD}_LAND_PARENT_$date ..."
+$CVS rtag -r $parent ${PARENT}_${CHILD}_LAND_PARENT_$date $module
 echo "done"
 
-echo -n "Create land point on ${child} ${PARENT}_${CHILD}_LAND_CHILD_$date ..."
-$CVS tag -r ${child} ${PARENT}_${CHILD}_LAND_CHILD_$date $dir
+echo -n "Create land-from point on ${child} ${PARENT}_${CHILD}_LAND_CHILD_$date ..."
+$CVS rtag -r ${child} ${PARENT}_${CHILD}_LAND_CHILD_$date $module
 echo "done"
 
-echo -n "Preserve old base tag ${CHILD}_BASE as ${CHILD}_BASE_PREV ..."
-$CVS tag -F -r ${CHILD}_BASE ${CHILD}_BASE_PREV $dir
+echo -n "Preserve old base tag on $parent ${CHILD}_BASE as ${CHILD}_BASE_PREV ..."
+$CVS rtag -F -r ${CHILD}_BASE ${CHILD}_BASE_PREV $module
 echo "done"
 
 # Apply all of the changes to your local tree:
diff --git a/build/land2.sh b/build/land2.sh
index f662c242a89573fb28ee0263ee83afa584965e93..01a5309562ca0214de218431d7a85b120c6377dd 100755
--- a/build/land2.sh
+++ b/build/land2.sh
@@ -9,7 +9,7 @@ fi
 
 . .mergeinfo
 
-if [ "$OPERATION" -ne "Land" ] ; then
+if [ "$OPERATION" != "Land" ] ; then
     echo "OPERATION must be Land - is $OPERATION"
     echo "You should probably be running ${OPERATION}2.sh"
     exit
@@ -24,10 +24,10 @@ fi
 cvs update $dir 2>&1 | grep "^M" && echo "uncommitted changes" && exit 1
 
 echo -n "Tagging as ${CHILD}_BASE_$date ..."
-$CVS tag -F ${CHILD}_BASE_$date $dir
+$CVS rtag -r $parent ${CHILD}_BASE_$date $module
 echo "done"
 echo -n "Tagging as ${CHILD}_BASE ..."
-$CVS tag -F ${CHILD}_BASE $dir
+$CVS rtag -F -r $parent ${CHILD}_BASE $module
 
 echo "saving .mergeinfo as .mergeinfo-$date"
 mv .mergeinfo .mergeinfo-$date
diff --git a/build/merge2.sh b/build/merge2.sh
index 43586f062e7e351c93eb8c16e0e249fae45f07e9..92cb375266fe39a87d7b3a9cd243b8a225c5cea8 100755
--- a/build/merge2.sh
+++ b/build/merge2.sh
@@ -7,6 +7,12 @@ fi
 
 . .mergeinfo
 
+if [ "$OPERATION" != "Merge" ] ; then
+    echo "OPERATION must be Merge - is $OPERATION"
+    echo "You should probably be running ${OPERATION}2.sh"
+    exit
+fi
+
 if [ -f $CONFLICTS ] ; then
     echo "$CONFLICTS exists - clean up first"
     cat $CONFLICTS
diff --git a/build/replace1.sh b/build/replace1.sh
index 8a571378e3a22e80ff9004d0269a17d21f3aa07c..cff259047ba522e2d1646475a4adc3e154265198 100755
--- a/build/replace1.sh
+++ b/build/replace1.sh
@@ -89,18 +89,18 @@ fi
 echo "done"
 
 # Tag parent before merge
-echo -n "Tagging as ${PARENT}_${CHILD}_REPLACE_PARENT_$date ..."
-$CVS tag ${PARENT}_${CHILD}_REPLACE_PARENT_$date $dir
+echo -n "Create land-to point on $parent as ${PARENT}_${CHILD}_REPLACE_PARENT_$date ..."
+$CVS rtag -r $parent ${PARENT}_${CHILD}_REPLACE_PARENT_$date $module
 echo "done"
 
 # Tag child before merge
-echo -n "Create land point on ${child} ${PARENT}_${CHILD}_REPLACE_CHILD_$date ..."
-$CVS tag -r ${child} ${PARENT}_${CHILD}_REPLACE_CHILD_$date $dir
+echo -n "Create land-from point on ${child} ${PARENT}_${CHILD}_REPLACE_CHILD_$date ..."
+$CVS rtag -r ${child} ${PARENT}_${CHILD}_REPLACE_CHILD_$date $module
 echo "done"
 
 # In case someone tries to re-land later
-echo -n "Preserve old base tag ${CHILD}_BASE as ${CHILD}_BASE_PREV ..."
-$CVS tag -F -r ${CHILD}_BASE ${CHILD}_BASE_PREV $dir
+echo -n "Preserve old base tag on $parent ${CHILD}_BASE as ${CHILD}_BASE_PREV ..."
+$CVS rtag -F -r ${CHILD}_BASE ${CHILD}_BASE_PREV $module
 echo "done"
 
 # Apply all of the changes to your local tree:
@@ -115,7 +115,7 @@ if [ -s $CONFLICTS ] ; then
     cat $CONFLICTS
 fi
 
-$CVS diff --brief -r $CHILD $dir >> $CONFLICTS  
+$CVS diff --brief -r $child $dir >> $CONFLICTS  
 if [ -s $CONFLICTS ] ; then
     echo "Danger! The child branch $CHILD differs from the updated branch $dir"
     cat $CONFLICTS
diff --git a/build/replace2.sh b/build/replace2.sh
index 71a03fda14e66b395541780c1f3225875b97e845..17d10ea4ef0f7abecddfa4a83d05de7e1f8c7c29 100755
--- a/build/replace2.sh
+++ b/build/replace2.sh
@@ -9,7 +9,7 @@ fi
 
 . .mergeinfo
 
-if [ "$OPERATION" -ne "Replace" ] ; then
+if [ "$OPERATION" != "Replace" ] ; then
     echo "OPERATION must be Replace - is $OPERATION"
     echo "You should probably be running ${OPERATION}2.sh"
     exit
@@ -25,11 +25,11 @@ cvs update $dir 2>&1 | grep "^M" && echo "uncommitted changes" && exit 1
 
 # Tag parent
 echo -n "Tagging as ${CHILD}_REPLACED_${PARENT}_$date ..."
-$CVS tag -F ${CHILD}_REPLACED_${PARENT}_$date $dir
+$CVS rtag -r $parent ${CHILD}_REPLACED_${PARENT}_$date $module
 echo "done"
 # In case someone tries to re-land later
 echo -n "Tagging as ${CHILD}_BASE ..."
-$CVS tag -F ${CHILD}_BASE $dir
+$CVS rtag -F -r $parent ${CHILD}_BASE $module
 
 echo "saving .mergeinfo as .mergeinfo-$date"
 mv .mergeinfo .mergeinfo-$date