Index: trunk/magic/remove/src/streaksremove.c
===================================================================
--- trunk/magic/remove/src/streaksremove.c	(revision 21156)
+++ trunk/magic/remove/src/streaksremove.c	(revision 21441)
@@ -1,3 +1,5 @@
 #include "streaksremove.h"
+
+#include "nebclient.h"
 
 static pmConfig *parseArguments(int argc, char **argv);
@@ -162,8 +164,8 @@
             }
             psArrayElementsFree (pixels);
+            psFree(pixels);
         }
 
         if (sfiles->stage == IPP_STAGE_CHIP) {
-        // if (CHIP_LEVEL_INPUT(sfiles->stage)) {
             updateAstrometry(sfiles);
         }
@@ -174,4 +176,6 @@
         printf("time to process component %d: %f\n", sfiles->extnum, psTimerClear("PROCESS_COMPONENT"));
     } while (streakFilesNextExtension(sfiles));
+
+    psFree(streaks);
 
     printf("pixels: %ld streak pixels: %ld %4.2f%%\n", totalPixels, totalStreakPixels, 100. * totalStreakPixels / totalPixels);
@@ -191,5 +195,4 @@
     }
 
-#ifdef NOTYET
     if (psMetadataLookupBool(&status, config->arguments, "REPLACE")) {
         //     swap the instances for the input and output
@@ -221,16 +224,16 @@
         }
     }
-#endif  // REPLACE, REMOVE
+
     printf("time to run streaksremove: %f\n", psTimerClear("STREAKSREMOVE"));
 
-    // nebServerFree(ourNebServer);
+    psFree(sfiles);
     psFree(config);
     pmConceptsDone();
+    pmModelClassCleanup();
+    streaksNebulousCleanup(); 
     pmConfigDone();
     psLibFinalize();
 
-    //  PAU
     fprintf(stderr, "Found %d leaks at %s\n", psMemCheckLeaks (0, NULL, NULL, false), "streaksremove");
-
 
     return 0;
@@ -417,4 +420,5 @@
         psMetadataAddStr(config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "directory for temporary files",
             dir);
+        psFree(dir);
         psArgumentRemove(argnum, &argc, argv);
     } else {
@@ -428,4 +432,5 @@
         psMetadataAddStr(config->arguments, PS_LIST_TAIL, "RECOVERY", 0, "directory for recovery files",
             dir);
+        psFree(dir);
         psArgumentRemove(argnum, &argc, argv);
     } else if ((stage == IPP_STAGE_RAW) && gotReplace) {
