Index: trunk/psLib/src/fits/psFits.c
===================================================================
--- trunk/psLib/src/fits/psFits.c	(revision 6314)
+++ trunk/psLib/src/fits/psFits.c	(revision 6354)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.51 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-11-14 22:18:30 $
+ *  @version $Revision: 1.52 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-08 01:03:34 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -245,5 +245,5 @@
     }
 
-    bool psFitsMoveLast(const psFits* fits)
+    bool psFitsMoveLast(psFits* fits)
     {
         if (fits == NULL) {
Index: trunk/psLib/src/fits/psFits.h
===================================================================
--- trunk/psLib/src/fits/psFits.h	(revision 6314)
+++ trunk/psLib/src/fits/psFits.h	(revision 6354)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-11-14 22:18:30 $
+ *  @version $Revision: 1.23 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-08 01:03:34 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -115,5 +115,5 @@
 */
 bool psFitsMoveLast(
-    const psFits* fits                 ///< the psFits object to move
+    psFits* fits                       ///< the psFits object to move
 );
 
Index: trunk/psLib/src/fits/psFitsHeader.c
===================================================================
--- trunk/psLib/src/fits/psFitsHeader.c	(revision 6314)
+++ trunk/psLib/src/fits/psFitsHeader.c	(revision 6354)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-11-14 22:18:30 $
+ *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-08 01:03:34 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -167,22 +167,13 @@
 }
 
-psMetadata* psFitsReadHeaderSet(psMetadata* out,
-                                const psFits* fits)
+psMetadata* psFitsReadHeaderSet(const psFits* fits)
 {
     if (fits == NULL) {
         psError(PS_ERR_BAD_PARAMETER_NULL, true,
                 PS_ERRORTEXT_psFits_NULL);
-        psFree(out);
         return NULL;
     }
 
-    if (out == NULL) {
-        out = psMetadataAlloc();
-        if (out == NULL) {
-            psError(PS_ERR_UNKNOWN, false,
-                    "Failed to allocate a new psMetadata container.");
-            return NULL;
-        }
-    }
+    psMetadata* out = psMetadataAlloc();
 
     int size = psFitsGetSize(fits);
Index: trunk/psLib/src/fits/psFitsHeader.h
===================================================================
--- trunk/psLib/src/fits/psFitsHeader.h	(revision 6314)
+++ trunk/psLib/src/fits/psFitsHeader.h	(revision 6354)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-11-14 22:18:30 $
+ *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-08 01:03:34 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -37,9 +37,4 @@
  */
 psMetadata* psFitsReadHeaderSet(
-    psMetadata* out,
-    ///< The psMetadata to add the header data via psMetadata items.  If null, a
-    ///< new psMetadata is created.  The keys of the psMetadata are the extension names
-    ///< of the cooresponding HDUs.
-
     const psFits* fits                       ///< the psFits object
 );
Index: trunk/psLib/src/fits/psFitsTable.c
===================================================================
--- trunk/psLib/src/fits/psFitsTable.c	(revision 6314)
+++ trunk/psLib/src/fits/psFitsTable.c	(revision 6354)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-02-03 00:11:58 $
+ *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-08 01:03:34 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -23,4 +23,5 @@
 #include "psTrace.h"
 #include "psVector.h"
+#include "config.h"
 
 #define MAX_STRING_LENGTH 256  // maximum length string for FITS routines
@@ -309,5 +310,5 @@
         if (status == 0) {
 
-            #define READ_TABLE_ROW_CASE(FITSTYPE, NATIVETYPE, TYPE) \
+            #define READ_TABLE_ROW_CASE(FITSTYPE, NATIVETYPE, TYPE, VECTYPE) \
         case FITSTYPE: { \
                 if (repeat == 1) { \
@@ -322,12 +323,15 @@
                                   "", (ps##TYPE)value); \
                 } else { \
-                    psVector* value = psVectorAlloc(repeat,PS_DATA_##TYPE); \
+                    NATIVETYPE* value = psAlloc(sizeof(NATIVETYPE)*repeat); \
+                    psVector* vec = psVectorAlloc(repeat,PS_TYPE_##VECTYPE); \
                     int anynul = 0; \
                     fits_read_col(fits->fd, FITSTYPE, col,row+1, \
-                                  1, repeat, NULL, value->data.U8, &anynul, &status); \
-                    psMetadataAdd(data,PS_LIST_TAIL, name, \
-                                  PS_DATA_VECTOR, \
-                                  "", value); \
+                                  1, repeat, NULL, value, &anynul, &status); \
+                    for (int lcv = 0; lcv < repeat; lcv++) { \
+                        vec->data.VECTYPE[lcv] = value[lcv]; \
+                    } \
+                    psMetadataAdd(data,PS_LIST_TAIL, name, PS_DATA_VECTOR, "", vec); \
                     psFree(value); \
+                    psFree(vec); \
                 } \
                 break; \
@@ -338,8 +342,8 @@
             case TSHORT:
             case TLONGLONG:
-                READ_TABLE_ROW_CASE(TLONG, long, S32)
-                READ_TABLE_ROW_CASE(TFLOAT, float, F32)
-                READ_TABLE_ROW_CASE(TDOUBLE, double, F64)
-                READ_TABLE_ROW_CASE(TLOGICAL, bool, BOOL);
+                READ_TABLE_ROW_CASE(TLONG, long, S32,S32)
+                READ_TABLE_ROW_CASE(TFLOAT, float, F32,F32)
+                READ_TABLE_ROW_CASE(TDOUBLE, double, F64,F64)
+                READ_TABLE_ROW_CASE(TLOGICAL, bool, BOOL,S8);
             case TSTRING: {
                     char* value = psAlloc(repeat+1);
