Index: /trunk/magic/remove/src/streaksio.c
===================================================================
--- /trunk/magic/remove/src/streaksio.c	(revision 32251)
+++ /trunk/magic/remove/src/streaksio.c	(revision 32252)
@@ -752,5 +752,5 @@
         return;
     }
-    psArray *table = psFitsReadTable(in->fits);
+    psFitsTable *table = psFitsReadTableNew(in->fits);
     if (!table) {
         psError(PS_ERR_UNKNOWN, false, "failed to read table in extension %d from in->resolved name", extnum);
@@ -758,8 +758,9 @@
     }
 
-    if (!psFitsWriteTable(out->fits, out->header, table, extname)) {
+    if (!psFitsWriteTableNew(out->fits, out->header, table, extname)) {
         psError(PS_ERR_UNKNOWN, false, "failed to copy table in extension %d", extnum);
         streaksExit("", PS_EXIT_DATA_ERROR);
     }
+    psFree(table);
 }
 
Index: /trunk/magic/remove/src/streaksremove.c
===================================================================
--- /trunk/magic/remove/src/streaksremove.c	(revision 32251)
+++ /trunk/magic/remove/src/streaksremove.c	(revision 32252)
@@ -9,6 +9,4 @@
 
 #include "streaksremove.h"
-
-#include "psFitsTableNew.h"
 
 static pmConfig *parseArguments(int argc, char **argv);
@@ -280,5 +278,4 @@
 
     if (statsFileName) {
-    // Write out
         psString resolved = pmConfigConvertFilename(statsFileName, config, true, true); // Resolved filename
         if (!resolved) {
@@ -294,5 +291,5 @@
     }
 
-    // all done. Clean up to look for memory leaks.
+    // all done. Clean up and look for memory leaks.
 
     psFree(sfiles);
@@ -1060,13 +1057,15 @@
         }
 
-        psArray *inTable = psFitsReadTable(in->fits);
-        if (!inTable) {
+        psFitsTable *table = psFitsReadTableNew(in->fits);
+        if (!table) {
             psErrorStackPrint(stderr, "failed to read table in %s", in->resolved_name);
             streaksExit("", PS_EXIT_DATA_ERROR);
         }
-        if (! psFitsWriteTable(out->fits, header, inTable, extname)) {
+        if (! psFitsWriteTableNew(out->fits, header, table, extname)) {
             psErrorStackPrint(stderr, "failed to write table to %s", out->resolved_name);
             streaksExit("", PS_EXIT_DATA_ERROR);
         }
+        psFree(header);
+        psFree(table);
     }
 
@@ -1075,4 +1074,4 @@
         streaksExit("", PS_EXIT_DATA_ERROR);
     }
-    out->fits = NULL;
-}
+    out->fits = NULL;   // freed by psFitsclose()
+}
