Index: /trunk/Ohana/src/libdvo/include/elixir_defs.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/elixir_defs.h	(revision 35161)
+++ /trunk/Ohana/src/libdvo/include/elixir_defs.h	(revision 35162)
@@ -1,3 +1,3 @@
-Image 		       	*Image_Elixir_ToInternal (Image_Elixir *in, off_t Nvalues);
+Image 		       	*Image_Elixir_ToInternal (Image_Elixir *in, off_t Nvalues, off_t Nalloc);
 Image_Elixir 	       	*ImageInternalTo_Elixir (Image *in, off_t Nvalues);
 Average 	       	*Average_Elixir_ToInternal (Average_Elixir *in, off_t Nvalues, SecFilt **primary);
Index: /trunk/Ohana/src/libdvo/include/loneos_defs.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/loneos_defs.h	(revision 35161)
+++ /trunk/Ohana/src/libdvo/include/loneos_defs.h	(revision 35162)
@@ -1,3 +1,3 @@
-Image 		       	*Image_Loneos_ToInternal (Image_Loneos *in, off_t Nvalues);
+Image 		       	*Image_Loneos_ToInternal (Image_Loneos *in, off_t Nvalues, off_t Nalloc);
 Image_Loneos 	       	*ImageInternalTo_Loneos (Image *in, off_t Nvalues);
 Average                	*Average_Loneos_ToInternal (Average_Loneos *in, off_t Nvalues, SecFilt **primary);
Index: /trunk/Ohana/src/libdvo/include/panstarrs_dev_0_defs.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/panstarrs_dev_0_defs.h	(revision 35161)
+++ /trunk/Ohana/src/libdvo/include/panstarrs_dev_0_defs.h	(revision 35162)
@@ -1,3 +1,3 @@
-Image 		       	*Image_Panstarrs_DEV_0_ToInternal (Image_Panstarrs_DEV_0 *in, off_t Nvalues);
+Image 		       	*Image_Panstarrs_DEV_0_ToInternal (Image_Panstarrs_DEV_0 *in, off_t Nvalues, off_t Nalloc);
 Image_Panstarrs_DEV_0  	*ImageInternalTo_Panstarrs_DEV_0 (Image *in, off_t Nvalues);
 Average 	       	*Average_Panstarrs_DEV_0_ToInternal (Average_Panstarrs_DEV_0 *in, off_t Nvalues, SecFilt **primary);
Index: /trunk/Ohana/src/libdvo/include/panstarrs_dev_1_defs.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/panstarrs_dev_1_defs.h	(revision 35161)
+++ /trunk/Ohana/src/libdvo/include/panstarrs_dev_1_defs.h	(revision 35162)
@@ -1,3 +1,3 @@
-Image 		       	*Image_Panstarrs_DEV_1_ToInternal (Image_Panstarrs_DEV_1 *in, off_t Nvalues);
+Image 		       	*Image_Panstarrs_DEV_1_ToInternal (Image_Panstarrs_DEV_1 *in, off_t Nvalues, off_t Nalloc);
 Image_Panstarrs_DEV_1  	*ImageInternalTo_Panstarrs_DEV_1 (Image *in, off_t Nvalues);
 Average 	       	*Average_Panstarrs_DEV_1_ToInternal (Average_Panstarrs_DEV_1 *in, off_t Nvalues, SecFilt **primary);
Index: /trunk/Ohana/src/libdvo/include/ps1_dev_1_defs.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/ps1_dev_1_defs.h	(revision 35161)
+++ /trunk/Ohana/src/libdvo/include/ps1_dev_1_defs.h	(revision 35162)
@@ -1,3 +1,3 @@
-Image 		       	*Image_PS1_DEV_1_ToInternal (Image_PS1_DEV_1 *in, off_t Nvalues);
+Image 		       	*Image_PS1_DEV_1_ToInternal (Image_PS1_DEV_1 *in, off_t Nvalues, off_t Nalloc);
 Image_PS1_DEV_1  	*ImageInternalTo_PS1_DEV_1 (Image *in, off_t Nvalues);
 Average 	       	*Average_PS1_DEV_1_ToInternal (Average_PS1_DEV_1 *in, off_t Nvalues, SecFilt **primary);
Index: /trunk/Ohana/src/libdvo/include/ps1_dev_2_defs.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/ps1_dev_2_defs.h	(revision 35161)
+++ /trunk/Ohana/src/libdvo/include/ps1_dev_2_defs.h	(revision 35162)
@@ -1,3 +1,3 @@
-Image 		       	*Image_PS1_DEV_2_ToInternal (Image_PS1_DEV_2 *in, off_t Nvalues);
+Image 		       	*Image_PS1_DEV_2_ToInternal (Image_PS1_DEV_2 *in, off_t Nvalues, off_t Nalloc);
 Image_PS1_DEV_2  	*ImageInternalTo_PS1_DEV_2 (Image *in, off_t Nvalues);
 Average 	       	*Average_PS1_DEV_2_ToInternal (Average_PS1_DEV_2 *in, off_t Nvalues, SecFilt **primary);
Index: /trunk/Ohana/src/libdvo/include/ps1_dev_3_defs.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/ps1_dev_3_defs.h	(revision 35161)
+++ /trunk/Ohana/src/libdvo/include/ps1_dev_3_defs.h	(revision 35162)
@@ -1,3 +1,3 @@
-Image 		       	*Image_PS1_DEV_3_ToInternal (Image_PS1_DEV_3 *in, off_t Nvalues);
+Image 		       	*Image_PS1_DEV_3_ToInternal (Image_PS1_DEV_3 *in, off_t Nvalues, off_t Nalloc);
 Image_PS1_DEV_3  	*ImageInternalTo_PS1_DEV_3 (Image *in, off_t Nvalues);
 
Index: /trunk/Ohana/src/libdvo/include/ps1_ref_defs.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/ps1_ref_defs.h	(revision 35161)
+++ /trunk/Ohana/src/libdvo/include/ps1_ref_defs.h	(revision 35162)
@@ -1,3 +1,3 @@
-Image 		       	*Image_PS1_REF_ToInternal (Image_PS1_REF *in, off_t Nvalues);
+Image 		       	*Image_PS1_REF_ToInternal (Image_PS1_REF *in, off_t Nvalues, off_t Nalloc);
 Image_PS1_REF    	*ImageInternalTo_PS1_REF (Image *in, off_t Nvalues);
 Average 	       	*Average_PS1_REF_ToInternal (Average_PS1_REF *in, off_t Nvalues, SecFilt **primary);
Index: /trunk/Ohana/src/libdvo/include/ps1_v1_defs.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/ps1_v1_defs.h	(revision 35161)
+++ /trunk/Ohana/src/libdvo/include/ps1_v1_defs.h	(revision 35162)
@@ -1,3 +1,3 @@
-Image 		       	*Image_PS1_V1_ToInternal (Image_PS1_V1 *in, off_t Nvalues);
+Image 		       	*Image_PS1_V1_ToInternal (Image_PS1_V1 *in, off_t Nvalues, off_t Nalloc);
 Image_PS1_V1    	*ImageInternalTo_PS1_V1 (Image *in, off_t Nvalues);
 Average 	       	*Average_PS1_V1_ToInternal (Average_PS1_V1 *in, off_t Nvalues, SecFilt **primary);
Index: /trunk/Ohana/src/libdvo/include/ps1_v2_defs.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/ps1_v2_defs.h	(revision 35161)
+++ /trunk/Ohana/src/libdvo/include/ps1_v2_defs.h	(revision 35162)
@@ -1,3 +1,3 @@
-Image 		       	*Image_PS1_V2_ToInternal (Image_PS1_V2 *in, off_t Nvalues);
+Image 		       	*Image_PS1_V2_ToInternal (Image_PS1_V2 *in, off_t Nvalues, off_t Nalloc);
 Image_PS1_V2    	*ImageInternalTo_PS1_V2 (Image *in, off_t Nvalues);
 Average 	       	*Average_PS1_V2_ToInternal (Average_PS1_V2 *in, off_t Nvalues, SecFilt **primary);
Index: /trunk/Ohana/src/libdvo/include/ps1_v3_defs.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/ps1_v3_defs.h	(revision 35161)
+++ /trunk/Ohana/src/libdvo/include/ps1_v3_defs.h	(revision 35162)
@@ -1,3 +1,3 @@
-Image 		       	*Image_PS1_V3_ToInternal (Image_PS1_V3 *in, off_t Nvalues);
+Image 		       	*Image_PS1_V3_ToInternal (Image_PS1_V3 *in, off_t Nvalues, off_t Nalloc);
 Image_PS1_V3    	*ImageInternalTo_PS1_V3 (Image *in, off_t Nvalues);
 Average 	       	*Average_PS1_V3_ToInternal (Average_PS1_V3 *in, off_t Nvalues, SecFilt **primary);
Index: /trunk/Ohana/src/libdvo/include/ps1_v4_defs.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/ps1_v4_defs.h	(revision 35161)
+++ /trunk/Ohana/src/libdvo/include/ps1_v4_defs.h	(revision 35162)
@@ -1,3 +1,3 @@
-Image 		       	*Image_PS1_V4_ToInternal (Image_PS1_V4 *in, off_t Nvalues);
+Image 		       	*Image_PS1_V4_ToInternal (Image_PS1_V4 *in, off_t Nvalues, off_t Nalloc);
 Image_PS1_V4    	*ImageInternalTo_PS1_V4 (Image *in, off_t Nvalues);
 Average 	       	*Average_PS1_V4_ToInternal (Average_PS1_V4 *in, off_t Nvalues, SecFilt **primary);
Index: /trunk/Ohana/src/libdvo/src/dvo_convert.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert.c	(revision 35162)
@@ -327,4 +327,6 @@
 /*** Image Conversions ***/
 
+// I have loaded the disk db table and now I want to convert to the internal format
+// (Image structure), but I onyl 
 int FtableToImage (FTable *ftable, Header *theader, char *format) {
 
@@ -340,5 +342,6 @@
       exit (2);
     }
-    ftable[0].buffer = (char *) Image_Elixir_ToInternal (tmpimage, Nimage);
+    int Nalloc = gfits_data_pad_size(Nimage*sizeof(Image));
+    ftable[0].buffer = (char *) Image_Elixir_ToInternal (tmpimage, Nimage, Nalloc);
     free (tmpimage);
     gfits_free_header (theader);
@@ -365,5 +368,6 @@
       exit (2); \
     } \
-    ftable[0].buffer = (char *) Image_##TYPE##_ToInternal (tmpimage, Nimage); \
+    int Nalloc = gfits_data_pad_size(Nimage*sizeof(Image));		\
+    ftable[0].buffer = (char *) Image_##TYPE##_ToInternal (tmpimage, Nimage, Nalloc); \
     free (tmpimage); \
     gfits_free_header (theader); \
Index: /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c	(revision 35162)
@@ -204,10 +204,13 @@
 }
 
-Image *Image_PS1_DEV_1_ToInternal (Image_PS1_DEV_1 *in, off_t Nvalues) {
+Image *Image_PS1_DEV_1_ToInternal (Image_PS1_DEV_1 *in, off_t Nvalues, off_t Nalloc) {
 
   off_t i;
   Image *out;
 
-  ALLOCATE_ZERO (out, Image, Nvalues);
+  char *buffer;
+  ALLOCATE_ZERO (buffer, char, Nalloc);
+  out = (Image *) buffer;
+  // ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c	(revision 35162)
@@ -199,10 +199,13 @@
 }
 
-Image *Image_PS1_DEV_2_ToInternal (Image_PS1_DEV_2 *in, off_t Nvalues) {
+Image *Image_PS1_DEV_2_ToInternal (Image_PS1_DEV_2 *in, off_t Nvalues, off_t Nalloc) {
 
   off_t i;
   Image *out;
 
-  ALLOCATE_ZERO (out, Image, Nvalues);
+  char *buffer;
+  ALLOCATE_ZERO (buffer, char, Nalloc);
+  out = (Image *) buffer;
+  // ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_3.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_3.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_3.c	(revision 35162)
@@ -5,10 +5,13 @@
 // We only provide image and photcode conversion
 
-Image *Image_PS1_DEV_3_ToInternal (Image_PS1_DEV_3 *in, off_t Nvalues) {
+Image *Image_PS1_DEV_3_ToInternal (Image_PS1_DEV_3 *in, off_t Nvalues, off_t Nalloc) {
 
   off_t i;
   Image *out;
 
-  ALLOCATE_ZERO (out, Image, Nvalues);
+  char *buffer;
+  ALLOCATE_ZERO (buffer, char, Nalloc);
+  out = (Image *) buffer;
+  // ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c	(revision 35162)
@@ -129,10 +129,13 @@
 }
 
-Image *Image_PS1_REF_ToInternal (Image_PS1_REF *in, off_t Nvalues) {
+Image *Image_PS1_REF_ToInternal (Image_PS1_REF *in, off_t Nvalues, off_t Nalloc) {
 
   off_t i;
   Image *out;
 
-  ALLOCATE_ZERO (out, Image, Nvalues);
+  char *buffer;
+  ALLOCATE_ZERO (buffer, char, Nalloc);
+  out = (Image *) buffer;
+  // ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c	(revision 35162)
@@ -224,10 +224,13 @@
 }
 
-Image *Image_PS1_V1_ToInternal (Image_PS1_V1 *in, off_t Nvalues) {
+Image *Image_PS1_V1_ToInternal (Image_PS1_V1 *in, off_t Nvalues, off_t Nalloc) {
 
   off_t i;
   Image *out;
 
-  ALLOCATE_ZERO (out, Image, Nvalues);
+  char *buffer;
+  ALLOCATE_ZERO (buffer, char, Nalloc);
+  out = (Image *) buffer;
+  // ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c	(revision 35162)
@@ -235,10 +235,13 @@
 }
 
-Image *Image_PS1_V2_ToInternal (Image_PS1_V2 *in, off_t Nvalues) {
+Image *Image_PS1_V2_ToInternal (Image_PS1_V2 *in, off_t Nvalues, off_t Nalloc) {
 
   off_t i;
   Image *out;
 
-  ALLOCATE_ZERO (out, Image, Nvalues);
+  char *buffer;
+  ALLOCATE_ZERO (buffer, char, Nalloc);
+  out = (Image *) buffer;
+  // ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c	(revision 35162)
@@ -245,10 +245,13 @@
 }
 
-Image *Image_PS1_V3_ToInternal (Image_PS1_V3 *in, off_t Nvalues) {
+Image *Image_PS1_V3_ToInternal (Image_PS1_V3 *in, off_t Nvalues, off_t Nalloc) {
 
   off_t i;
   Image *out;
 
-  ALLOCATE_ZERO (out, Image, Nvalues);
+  char *buffer;
+  ALLOCATE_ZERO (buffer, char, Nalloc);
+  out = (Image *) buffer;
+  // ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c	(revision 35162)
@@ -283,10 +283,13 @@
 }
 
-Image *Image_PS1_V4_ToInternal (Image_PS1_V4 *in, off_t Nvalues) {
+Image *Image_PS1_V4_ToInternal (Image_PS1_V4 *in, off_t Nvalues, off_t Nalloc) {
 
   off_t i;
   Image *out;
 
-  ALLOCATE_ZERO (out, Image, Nvalues);
+  char *buffer;
+  ALLOCATE_ZERO (buffer, char, Nalloc);
+  out = (Image *) buffer;
+  // ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /trunk/Ohana/src/libdvo/src/dvo_convert_elixir.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert_elixir.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert_elixir.c	(revision 35162)
@@ -190,10 +190,13 @@
 
 /* convert elixir-format images to internal images */
-Image *Image_Elixir_ToInternal (Image_Elixir *in, off_t Nvalues) {
+Image *Image_Elixir_ToInternal (Image_Elixir *in, off_t Nvalues, off_t Nalloc) {
 
   off_t i;
   Image *out;
 
-  ALLOCATE_ZERO (out, Image, Nvalues);
+  char *buffer;
+  ALLOCATE_ZERO (buffer, char, Nalloc);
+  out = (Image *) buffer;
+  // ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /trunk/Ohana/src/libdvo/src/dvo_convert_loneos.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert_loneos.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert_loneos.c	(revision 35162)
@@ -170,10 +170,13 @@
 
 /* convert loneos-format images to internal images */
-Image *Image_Loneos_ToInternal (Image_Loneos *in, off_t Nvalues) {
+Image *Image_Loneos_ToInternal (Image_Loneos *in, off_t Nvalues, off_t Nalloc) {
 
   off_t i;
   Image *out;
 
-  ALLOCATE_ZERO (out, Image, Nvalues);
+  char *buffer;
+  ALLOCATE_ZERO (buffer, char, Nalloc);
+  out = (Image *) buffer;
+  // ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c	(revision 35162)
@@ -210,10 +210,13 @@
 
 /* convert panstarrs-format images to internal images */
-Image *Image_Panstarrs_DEV_0_ToInternal (Image_Panstarrs_DEV_0 *in, off_t Nvalues) {
+Image *Image_Panstarrs_DEV_0_ToInternal (Image_Panstarrs_DEV_0 *in, off_t Nvalues, off_t Nalloc) {
 
   off_t i;
   Image *out;
 
-  ALLOCATE_ZERO (out, Image, Nvalues);
+  char *buffer;
+  ALLOCATE_ZERO (buffer, char, Nalloc);
+  out = (Image *) buffer;
+  // ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c	(revision 35162)
@@ -210,10 +210,13 @@
 
 /* convert panstarrs-format images to internal images */
-Image *Image_Panstarrs_DEV_1_ToInternal (Image_Panstarrs_DEV_1 *in, off_t Nvalues) {
+Image *Image_Panstarrs_DEV_1_ToInternal (Image_Panstarrs_DEV_1 *in, off_t Nvalues, off_t Nalloc) {
 
   off_t i;
   Image *out;
 
-  ALLOCATE_ZERO (out, Image, Nvalues);
+  char *buffer;
+  ALLOCATE_ZERO (buffer, char, Nalloc);
+  out = (Image *) buffer;
+  // ALLOCATE_ZERO (out, Image, Nvalues);
 
   for (i = 0; i < Nvalues; i++) {
Index: /trunk/Ohana/src/libdvo/src/dvo_image.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/dvo_image.c	(revision 35161)
+++ /trunk/Ohana/src/libdvo/src/dvo_image.c	(revision 35162)
@@ -84,4 +84,8 @@
   }
   if (!status) return (FALSE);
+
+  // XXX this is the problem... the conversion (external to internal) is 
+  // only allocated Nimage * sizeof(image) not padded to FITS blocks,
+  // so when we later do a gfits_copy_ftable, we stomp on bad memory
   FtableToImage (&db[0].ftable, &db[0].theader, &db[0].format);
   db[0].swapped = TRUE;  /* table has internal byte-order */
Index: /trunk/Ohana/src/libfits/include/gfitsio.h
===================================================================
--- /trunk/Ohana/src/libfits/include/gfitsio.h	(revision 35161)
+++ /trunk/Ohana/src/libfits/include/gfitsio.h	(revision 35162)
@@ -123,4 +123,5 @@
 off_t   gfits_data_size                PROTO((Header *header));
 off_t   gfits_data_min_size            PROTO((Header *header));
+off_t   gfits_data_pad_size            PROTO((off_t rawsize));
 int 	gfits_extended_to_primary      PROTO((Header *header, int simple, char *comment));
 int 	gfits_primary_to_extended      PROTO((Header *header, char *exttype, char *comment));
Index: /trunk/Ohana/src/libfits/matrix/F_matrix.c
===================================================================
--- /trunk/Ohana/src/libfits/matrix/F_matrix.c	(revision 35161)
+++ /trunk/Ohana/src/libfits/matrix/F_matrix.c	(revision 35162)
@@ -43,2 +43,15 @@
   return (size);
 }
+
+off_t gfits_data_pad_size (off_t rawsize) {
+  
+  off_t Nrec, size;
+
+  /* round up to next complete block */
+  if (rawsize % FT_RECORD_SIZE) {
+    Nrec = 1 + (int) (rawsize / FT_RECORD_SIZE);
+    size = FT_RECORD_SIZE * Nrec;
+  }
+
+  return (size);
+}
