Index: trunk/psLib/src/fits/psFitsTableNew.c
===================================================================
--- trunk/psLib/src/fits/psFitsTableNew.c	(revision 32229)
+++ trunk/psLib/src/fits/psFitsTableNew.c	(revision 32251)
@@ -94,8 +94,4 @@
 }
 
-void breakhere()
-{
-}
-
 void
 freeTable(psFitsTable *table) {
@@ -103,4 +99,13 @@
         psFitsTableColumn *column = &table->columns[col];
         psFree(column->name);
+        if (column->type == PS_DATA_STRING) {
+            for (int row; row < table->numRows; row++) {
+                psFree(column->data.str);
+            }
+        } else if (column->type == PS_DATA_VECTOR) {
+            for (int row; row < table->numRows; row++) {
+                psFree(column->data.vec);
+            }
+        }
         // all of the members in the data union are pointers so just pick S32
         psFree(column->data.S32);
@@ -192,5 +197,4 @@
                     NATIVETYPE *values = (NATIVETYPE *) psAlloc(sizeof(NATIVETYPE) * table->numRows); \
                     int anynul = 0; \
-                    breakhere(); \
                     fits_read_col(fits->fd, FITSTYPE, col, 1, \
                                   1, numRows, NULL, values, &anynul, &status); \
@@ -200,4 +204,5 @@
                     psTrace("psLib.fits",5,"Column #%i, '%s', is type %i, repeat %li\n", \
                             col, name, typecode, repeat); \
+                    psFree(values); \
                 } else { \
                     column->elementSize = repeat; \
Index: trunk/psLib/src/pslib_strict.h
===================================================================
--- trunk/psLib/src/pslib_strict.h	(revision 32229)
+++ trunk/psLib/src/pslib_strict.h	(revision 32251)
@@ -41,4 +41,5 @@
 #include "psFitsImage.h"
 #include "psFitsTable.h"
+#include "psFitsTableNew.h"
 #include "psFitsFloat.h"
 #include "psFitsFloatFile.h"
