Index: trunk/Ohana/src/dvomerge/include/dvomerge.h
===================================================================
--- trunk/Ohana/src/dvomerge/include/dvomerge.h	(revision 39341)
+++ trunk/Ohana/src/dvomerge/include/dvomerge.h	(revision 39342)
@@ -30,4 +30,5 @@
 int    VERIFY_CATALOG_ONLY;
 int    IMAGES_ONLY;
+int    ACCEPT_MOTION;
 char   CATDIR[DVO_MAX_PATH];
 char   GSCFILE[DVO_MAX_PATH];
Index: trunk/Ohana/src/dvomerge/src/args.c
===================================================================
--- trunk/Ohana/src/dvomerge/src/args.c	(revision 39341)
+++ trunk/Ohana/src/dvomerge/src/args.c	(revision 39342)
@@ -88,4 +88,12 @@
     remove_argument (N, argc, argv);
     MAX_CLIENTS = atoi(argv[N]);
+    remove_argument (N, argc, argv);
+  }
+
+  /* limit the impact of a dvomerge -parallel */
+  ACCEPT_MOTION = FALSE;
+  if ((N = get_argument (*argc, argv, "-accept-motion"))) {
+    remove_argument (N, argc, argv);
+    ACCEPT_MOTION = TRUE;
     remove_argument (N, argc, argv);
   }
@@ -299,4 +307,12 @@
   }
 
+  /* limit the impact of a dvomerge -parallel */
+  ACCEPT_MOTION = FALSE;
+  if ((N = get_argument (*argc, argv, "-accept-motion"))) {
+    remove_argument (N, argc, argv);
+    ACCEPT_MOTION = TRUE;
+    remove_argument (N, argc, argv);
+  }
+
   /* extra error messages */
   MATCHED_TABLES = FALSE;
Index: trunk/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c
===================================================================
--- trunk/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c	(revision 39341)
+++ trunk/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c	(revision 39342)
@@ -316,13 +316,18 @@
 	       UserPatch.Rmin, UserPatch.Rmax, UserPatch.Dmin, UserPatch.Dmax, RADIUS);
 
-    if (VERBOSE)                    { strextend (&command, "-v"); }
-    if (VERIFY)                     { strextend (&command, "-verify"); }
-    if (VERIFY_CATALOG_ONLY)        { strextend (&command, "-verify-catalogs"); }
-    if (REPLACE_BY_PHOTCODE)        { strextend (&command, "-replace"); }
-    if (REPLACE_TYCHO)              { strextend (&command, "-replace-tycho"); }
-    if (PARALLEL_INPUT)             { strextend (&command, "-parallel-input"); }
-    if (FORCE_MERGE)                { strextend (&command, "-force-merge"); }
-    if (MATCHED_TABLES)             { strextend (&command, "-matched-tables"); }
-    if (MATCH_BY_EXTERN_ID)         { strextend (&command, "-match-by-extern-id"); }
+    if (VERBOSE)             { strextend (&command, "-v"); }
+    if (VERIFY)              { strextend (&command, "-verify"); }
+    if (VERIFY_CATALOG_ONLY) { strextend (&command, "-verify-catalogs"); }
+    if (REPLACE_BY_PHOTCODE) { strextend (&command, "-replace"); }
+    if (REPLACE_TYCHO)       { strextend (&command, "-replace-tycho"); }
+    if (PARALLEL_INPUT)      { strextend (&command, "-parallel-input"); }
+    if (FORCE_MERGE)         { strextend (&command, "-force-merge"); }
+    if (ACCEPT_MOTION)       { strextend (&command, "-accept-motion"); }
+    if (MATCHED_TABLES)      { strextend (&command, "-matched-tables"); }
+    if (MATCH_BY_EXTERN_ID)  { strextend (&command, "-match-by-extern-id"); }
+    if (UPDATE_CATFORMAT)    { strextend (&command, "-update-catformat %s", UPDATE_CATFORMAT); }
+    if (UPDATE_CATCOMPRESS)  { strextend (&command, "-update-catcompress %s", UPDATE_CATCOMPRESS); }
+    if (CPTLIST_FILENAME)    { strextend (&command, "-restrict-cpt %s", CPTLIST_FILENAME); }
+    if (REPAIR_BY_OBJID)     { strextend (&command, "-repair-by-objid"); }
 
     if (SKIP_MEASURE)               { strextend (&command, "-skip-measure"); }
Index: trunk/Ohana/src/dvomerge/src/dvorepairDeleteImagesByExternID_v2.c
===================================================================
--- trunk/Ohana/src/dvomerge/src/dvorepairDeleteImagesByExternID_v2.c	(revision 39341)
+++ trunk/Ohana/src/dvomerge/src/dvorepairDeleteImagesByExternID_v2.c	(revision 39342)
@@ -1,3 +1,9 @@
 # include "dvorepair.h"
+
+// dvorepairDeleteImagesByExternID and dvorepairDeleteImagesByExternID_v2 differ in only 2
+// ways: 
+// 1) _v2 does NOT attempt to delete detections
+// 2) _v2 uses the 2nd word on each line in the externID list and requires 3 words per
+// line, while the other version requires 9 words per line (and also uses the 2nd word)
 
 // delete images based on a text table of the target IDs
Index: trunk/Ohana/src/dvomerge/src/merge_catalogs_old.c
===================================================================
--- trunk/Ohana/src/dvomerge/src/merge_catalogs_old.c	(revision 39341)
+++ trunk/Ohana/src/dvomerge/src/merge_catalogs_old.c	(revision 39342)
@@ -358,4 +358,17 @@
     }
 
+    // we can choose to accept the proper-motion and parallax from the reference tgtcat
+    if (ACCEPT_MOTION) {
+      output[0].average[Nave].dR         = input[0].average[N].dR;
+      output[0].average[Nave].dD         = input[0].average[N].dD;
+      output[0].average[Nave].uR         = input[0].average[N].uR;
+      output[0].average[Nave].uD         = input[0].average[N].uD;
+      output[0].average[Nave].duR        = input[0].average[N].duR;
+      output[0].average[Nave].duD        = input[0].average[N].duD;
+      output[0].average[Nave].P          = input[0].average[N].P;
+      output[0].average[Nave].dP         = input[0].average[N].dP;
+      output[0].average[Nave].Tmean      = input[0].average[N].Tmean;
+    }
+
     /* Nm is updated, but not written out in -update mode (for existing entries)
        Nm is recalculated in build_meas_links if loaded table is not sorted */
@@ -411,4 +424,17 @@
     output[0].average[Nave].objID     	   = objID; // we create objID values in the context of the output db
     output[0].average[Nave].catID     	   = catID; // we create catID values in the context of the output db
+
+    // we can choose to accept the proper-motion and parallax from the reference tgtcat
+    if (ACCEPT_MOTION) {
+      output[0].average[Nave].dR         = input[0].average[N].dR;
+      output[0].average[Nave].dD         = input[0].average[N].dD;
+      output[0].average[Nave].uR         = input[0].average[N].uR;
+      output[0].average[Nave].uD         = input[0].average[N].uD;
+      output[0].average[Nave].duR        = input[0].average[N].duR;
+      output[0].average[Nave].duD        = input[0].average[N].duD;
+      output[0].average[Nave].P          = input[0].average[N].P;
+      output[0].average[Nave].dP         = input[0].average[N].dP;
+      output[0].average[Nave].Tmean      = input[0].average[N].Tmean;
+    }
 
     if (PSPS_ID) {
