Index: /branches/eam_branches/ipp-20130509/Ohana/src/dvomerge/include/dvomerge.h
===================================================================
--- /branches/eam_branches/ipp-20130509/Ohana/src/dvomerge/include/dvomerge.h	(revision 35719)
+++ /branches/eam_branches/ipp-20130509/Ohana/src/dvomerge/include/dvomerge.h	(revision 35720)
@@ -40,4 +40,5 @@
 char  *ALTERNATE_PHOTCODE_FILE;
 int    REPLACE_BY_PHOTCODE;
+int    FORCE_MERGE;
 
 char *SINGLE_CPT;
Index: /branches/eam_branches/ipp-20130509/Ohana/src/dvomerge/src/args.c
===================================================================
--- /branches/eam_branches/ipp-20130509/Ohana/src/dvomerge/src/args.c	(revision 35719)
+++ /branches/eam_branches/ipp-20130509/Ohana/src/dvomerge/src/args.c	(revision 35720)
@@ -41,4 +41,11 @@
     remove_argument (N, argc, argv);
     ALTERNATE_PHOTCODE_FILE = strcreate(argv[N]);
+    remove_argument (N, argc, argv);
+  }
+
+  // merge even if header claims db has already been merged 
+  FORCE_MERGE = FALSE;
+  if ((N = get_argument (*argc, argv, "-force-merge"))) {
+    FORCE_MERGE = TRUE;
     remove_argument (N, argc, argv);
   }
@@ -171,4 +178,11 @@
   }
 
+  // merge even if header claims db has already been merged 
+  FORCE_MERGE = FALSE;
+  if ((N = get_argument (*argc, argv, "-force-merge"))) {
+    FORCE_MERGE = TRUE;
+    remove_argument (N, argc, argv);
+  }
+
   /* replace measurement, don't duplicate */
   REPLACE_BY_PHOTCODE = FALSE;
Index: /branches/eam_branches/ipp-20130509/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c
===================================================================
--- /branches/eam_branches/ipp-20130509/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c	(revision 35719)
+++ /branches/eam_branches/ipp-20130509/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c	(revision 35720)
@@ -109,5 +109,5 @@
       missed = (missed || outstat[j].missed);
     }
-    if (!missed) {
+    if (!FORCE_MERGE && !missed) {
       if (VERBOSE || VERIFY) fprintf (stderr, "skipping %s, already merged\n", filename_input);
       OutputStatusFree (outstat, outlist->Nregions);
@@ -146,5 +146,5 @@
 
       // skip if we have already done the merge
-      if (!outstat[j].missed) continue; 
+      if (!FORCE_MERGE && !outstat[j].missed) continue; 
 
       if (VERBOSE) fprintf (stderr, "output : %s\n", outlist[0].regions[j][0].name);
@@ -161,5 +161,7 @@
       outcatalog.catflags = LOAD_AVES | LOAD_MEAS | LOAD_MISS | LOAD_SECF;
 
-      dmhObjectAdd (outstat[j].history, &outcatalog.header, inStats);
+      if (outstat[i].missed) {
+	dmhObjectAdd (outstat[j].history, &outcatalog.header, inStats);
+      }
 
       if (!dvo_catalog_backup (&outcatalog, TRUE)) {
@@ -239,9 +241,10 @@
 
     char tmpline[DVO_MAX_PATH];
-    if (VERBOSE)             { snprintf (tmpline, DVO_MAX_PATH, "%s -v",       command); 	  strcpy (command, tmpline); }
-    if (VERIFY)              { snprintf (tmpline, DVO_MAX_PATH, "%s -verify",  command); 	  strcpy (command, tmpline); }
-    if (VERIFY_CATALOG_ONLY) { snprintf (tmpline, DVO_MAX_PATH, "%s -verify-catalogs",  command); strcpy (command, tmpline); }
-    if (REPLACE_BY_PHOTCODE) { snprintf (tmpline, DVO_MAX_PATH, "%s -replace", command);  	  strcpy (command, tmpline); }
-    if (PARALLEL_INPUT)      { snprintf (tmpline, DVO_MAX_PATH, "%s -parallel-input",  command);  strcpy (command, tmpline); }
+    if (VERBOSE)             { snprintf (tmpline, DVO_MAX_PATH, "%s -v",               command); strcpy (command, tmpline); }
+    if (VERIFY)              { snprintf (tmpline, DVO_MAX_PATH, "%s -verify",          command); strcpy (command, tmpline); }
+    if (VERIFY_CATALOG_ONLY) { snprintf (tmpline, DVO_MAX_PATH, "%s -verify-catalogs", command); strcpy (command, tmpline); }
+    if (REPLACE_BY_PHOTCODE) { snprintf (tmpline, DVO_MAX_PATH, "%s -replace",         command); strcpy (command, tmpline); }
+    if (PARALLEL_INPUT)      { snprintf (tmpline, DVO_MAX_PATH, "%s -parallel-input",  command); strcpy (command, tmpline); }
+    if (FORCE_MERGE)         { snprintf (tmpline, DVO_MAX_PATH, "%s -force-merge",     command); strcpy (command, tmpline); }
 
     fprintf (stderr, "command: %s\n", command);
