Index: trunk/Ohana/src/opihi/dvo/ccd.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/ccd.c	(revision 16810)
+++ trunk/Ohana/src/opihi/dvo/ccd.c	(revision 20535)
@@ -7,4 +7,5 @@
   int N1, N2, i1, i2, mode[4];
   int Nsecfilt, KeepNulls;
+  void *Signal;
 
   Catalog catalog;
@@ -55,6 +56,10 @@
   if ((yvec = SelectVector ("yv", ANYVECTOR, TRUE)) == NULL) goto escape;
 
+  // grab data from all selected sky regions
+  Signal = signal (SIGINT, handle_interrupt);
+  interrupt = FALSE;
+
   /* loop over regions, extract data for each region */
-  for (k = 0; k < skylist[0].Nregions; k++) {
+  for (k = 0; (k < skylist[0].Nregions) && !interrupt; k++) {
     /* lock, load, unlock catalog */
     catalog.filename = skylist[0].filename[k];
@@ -70,5 +75,5 @@
 
     /* get correct mags, convert to X,Y */
-    for (i = 0; i < catalog.Naverage; i++) {
+    for (i = 0; (i < catalog.Naverage) && !interrupt; i++) {
       M1 = M2 = NULL;
       m = catalog.average[i].measureOffset;
