Index: trunk/Ohana/src/imregister/detrend/output.c
===================================================================
--- trunk/Ohana/src/imregister/detrend/output.c	(revision 2803)
+++ trunk/Ohana/src/imregister/detrend/output.c	(revision 3593)
@@ -5,8 +5,5 @@
 extern double drand48();
 
-int OutputSubset (Match *match, int Nmatch) {
-
-  int Nimage;
-  DetReg *image;
+int OutputSubset (DetReg *image, int Nimage, Match *match, int Nmatch) {
 
   image = get_images (&Nimage);
@@ -32,7 +29,5 @@
   FTable table;
   DetReg *subset;
-
-  /* define table layout */
-  define_table (&header, &matrix, &theader, &table);
+  FILE *f;
 
   ALLOCATE (subset, DetReg, MAX (1, Nmatch));
@@ -41,11 +36,26 @@
     memcpy (&subset[i], &image[j], sizeof (DetReg));
   }
-  ConvertStruct ((char *) subset, sizeof (DetReg), Nmatch, "detreg");
-  fits_add_rows (&table, (char *) subset, Nmatch, sizeof (DetReg));
-
-  fits_write_header  (filename, &header);
-  fits_write_matrix  (filename, &matrix);
-  fits_write_Theader (filename, &theader);
-  fits_write_table   (filename, &table);
+
+  /* open file for output */
+  f = fopen (filename, "w");
+  if (f == NULL) {
+    fprintf (stderr, "ERROR: can't open output file %s\n", filename);
+    exit (1);
+  }
+
+  /* create primary header */
+  fits_init_header (&header);    
+  header.extend = TRUE;
+  fits_create_header (&header);
+  fits_create_matrix (&header, &matrix);
+  fits_print (&header, "NEXTEND", "%d", 1, 1);
+
+  ftable.header = &theader;
+  fits_table_set_DetReg (&ftable, subset, Nmatch);
+
+  fits_write_header  (f, &header);
+  fits_write_matrix  (f, &matrix);
+  fits_write_Theader (f, &theader);
+  fits_write_table   (f, &table);
   exit (0);
 }
@@ -78,4 +88,5 @@
   fits_modify (&header,  "DATE", "%s", 1, datestr);
   fits_modify (&theader, "DATE", "%s", 1, datestr);
+  free (datestr);
 
   /* define table layout */
