Index: trunk/Ohana/src/opihi/dvo/imextract.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/imextract.c	(revision 37807)
+++ trunk/Ohana/src/opihi/dvo/imextract.c	(revision 39457)
@@ -4,7 +4,6 @@
   
   off_t i, j, Nimage;
-  int n, N, Npts, NPTS, last, next, state, Nfields, Nreturn, Ncstack, Nstack;
+  int n, N, Npts, NPTS, last, next, state, Nfields, Nreturn, Nstack;
   char **cstack, name[1024];
-  void *Signal;
 
   Vector **vec;
@@ -57,4 +56,5 @@
 
   // parse the remainder of the line as a boolean math expression
+  unsigned int Ncstack;
   cstack = isolate_elements (argc-next, &argv[next], &Ncstack);
   
@@ -97,6 +97,5 @@
 
   // grab data from all selected sky regions
-  Signal = signal (SIGINT, handle_interrupt);
-  interrupt = FALSE;
+  struct sigaction *old_sigaction = SetInterrupt();
   for (j = 0; (j < Nimage) && !interrupt; j++) {
 
@@ -128,6 +127,6 @@
     }
   }
-  signal (SIGINT, Signal);
-  interrupt = FALSE;
+  ClearInterrupt (old_sigaction);
+
   for (n = 0; n < Nreturn; n++) {
     vec[n][0].Nelements = Npts;
