Index: /branches/eam_branches/ipp-20140904/Ohana/src/dvomerge/src/dvorepairDeleteImagesByExternID.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/dvomerge/src/dvorepairDeleteImagesByExternID.c	(revision 37524)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/dvomerge/src/dvorepairDeleteImagesByExternID.c	(revision 37525)
@@ -14,5 +14,5 @@
 // * rebuild the cpt file or delete the matching entries?
 
-int SaveImageTable (Image *image, off_t Nimage, char *catdir);
+int SaveImageTable (Image *image, off_t Nimage, char *catdir, FITS_DB *oldDB);
 Image *DeleteSelectedImages (Image *image, off_t Nimage, int *deleteImage, myIndexType *imageIDindex, off_t *NnewImage);
 
@@ -103,4 +103,5 @@
   int *deleteIDs = ReadDeleteListExternID(delList, &NdeleteIDs);
 
+  int NdeleteImages = 0;
   for (i = 0; i < NdeleteIDs; i++) {
     int externID = deleteIDs[i];
@@ -116,6 +117,12 @@
     }
     deleteImage[n] = TRUE;
+    NdeleteImages ++;
 
     if (VERBOSE) fprintf (stderr, "delete extern ID: %d = image ID %d (seq %d)\n", externID, image[n].imageID, n);
+  }
+
+  if (NdeleteImages == 0) {
+    fprintf (stderr, "no images to be deleted in this database, exiting\n");
+    exit (0);
   }
 
@@ -195,4 +202,6 @@
   ALLOCATE(cptFilenameTgt, char, strlen(catdir) + 64);
   ALLOCATE(cpsFilenameTgt, char, strlen(catdir) + 64);
+
+  int NdeleteTotal = 0;
 
   for (raPass = 0; raPass < nPass; raPass++) {
@@ -305,4 +314,6 @@
       }
 
+      NdeleteTotal += Ndelete;
+
       // if we actually want to delete any measurements, write out a new cpm file
       if (Ndelete > 0) {
@@ -368,8 +379,10 @@
   }
 
+  fprintf (stderr, "Deleted %d detections\n", NdeleteTotal);
+
   off_t NnewImage;
   Image *newImage = DeleteSelectedImages (image, Nimage, deleteImage, imageIDindex, &NnewImage);
 
-  SaveImageTable (newImage, NnewImage, catdir);
+  SaveImageTable (newImage, NnewImage, catdir, &db);
 
   myIndexFree (externIDindex);
@@ -389,5 +402,4 @@
   SkyTableFree(insky);
 
-  // XXX: NOTE: I am not deleting the images...
   gfits_db_free (&db);
 
@@ -456,5 +468,5 @@
 }
 
-int SaveImageTable (Image *image, off_t Nimage, char *catdir) {
+int SaveImageTable (Image *image, off_t Nimage, char *catdir, FITS_DB *oldDB) {
 
   FITS_DB db;
@@ -489,4 +501,12 @@
   dvo_image_create (&db, GetZeroPoint());
 
+  // I want to keep the old DVO_DBID
+  char dbID[33];
+  if (!gfits_scan (&oldDB->header, "DVO_DBID", "%s", 1, dbID)) {
+    fprintf (stderr, "source image table is missing DVO_DBID, exiting\n");
+    exit (3);
+  }
+  gfits_modify (&db.header, "DVO_DBID", "%s", 1, dbID);      
+
   /* add the new image and save */
   dvo_image_addrows (&db, image, Nimage);
