Index: trunk/magic/remove/src/streaksremove.c
===================================================================
--- trunk/magic/remove/src/streaksremove.c	(revision 32252)
+++ trunk/magic/remove/src/streaksremove.c	(revision 32264)
@@ -983,17 +983,31 @@
         // XXX: Handle case where numCols == 0 Can that happen?
         // Previously we were writing a blank extension
-        int xCol = psFitsTableGetColumnIndex(table, "X_PSF");
+
+        // For speed we get intimate with the table
+        // avoid 2 * numRows lookups of the column number by looking
+        // it up ahead of time and verifying that the type is what we
+        // expect.
+        int xCol = psFitsTableGetColumnNumber(table, "X_PSF");
         assert(xCol >= 0 && xCol < table->numCols);
-
-        int yCol = psFitsTableGetColumnIndex(table, "Y_PSF");
+        assert(table->columns[xCol].type == PS_DATA_F32);
+
+        int yCol = psFitsTableGetColumnNumber(table, "Y_PSF");
         assert(yCol >= 0 && yCol < table->numCols);
-
+        assert(table->columns[yCol].type == PS_DATA_F32);
+
+        // We mark censored rows in this array.
         bool *rowCensored = psAlloc(table->numRows * sizeof(bool));
+        memset(rowCensored, 0, table->numRows * sizeof(bool));
         int numCensored = 0;
 
         for (int i = 0 ; i < table->numRows; i++) {
-            psF32 x = psFitsTableGetCellF32(table, i, xCol);
-            psF32 y = psFitsTableGetCellF32(table, i, yCol);
-
+
+#ifndef GO_SLOWER
+            psF32 x = table->columns[xCol].data.F32[i];
+            psF32 y = table->columns[yCol].data.F32[i];
+#else
+            psF32 x = psFitsTableGetF32(NULL, table, i, "X_PSF");
+            psF32 y = psFitsTableGetF32(NULL, table, i, "Y_PSF");
+#endif
             psImageMaskType mask;
             if ((x >= maskImage->numCols) || (y >= maskImage->numRows) || (x <  0) || (y < 0) || isnan(x) || isnan(y)) {
@@ -1004,8 +1018,5 @@
 
             // Key the source if the center pixel is not masked with maskStreak
-            if (!(mask & maskStreak) ) {
-                // psArraySet(outTable, j++, row);
-                rowCensored[i] = false;
-            } else {
+            if (mask & maskStreak) {
                 rowCensored[i] = true;
                 numCensored++;
@@ -1013,4 +1024,5 @@
         }
 
+        // remove the censored rows from the table
         if (!psFitsTableCensor(table, rowCensored)) {
             streaksExit("", PS_EXIT_PROG_ERROR);
