Index: trunk/Ohana/src/libdvo/src/dvo_util.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_util.c	(revision 29955)
+++ trunk/Ohana/src/libdvo/src/dvo_util.c	(revision 30188)
@@ -255,4 +255,5 @@
       dvo_catalog_free (&catalog);
   }
+  size_t NInvalidDetID = 0;
   if (Ndetect) {
       dvoDetection *sorted;
@@ -262,5 +263,9 @@
       off_t i;
       for (i = 0; i < Ndetect; i++) {
-           sorted[detections[i].meas.detID] = detections[i];
+
+          if (detections[i].meas.detID < 0 || detections[i].meas.detID > (*pMaxDetID + 1))
+              NInvalidDetID++;
+          else
+              sorted[detections[i].meas.detID] = detections[i];
       }
       *results = sorted;
@@ -271,4 +276,6 @@
   FREE(detections);
 
+  if (NInvalidDetID) fprintf (stderr, "ERROR: Encountered %ld invalid detection IDs\n", NInvalidDetID);
+
   return (Ndetect);
 
