Index: /branches/eam_branches/ipp-20140904/Ohana/src/libfits/include/gfitsio.h
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/libfits/include/gfitsio.h	(revision 37729)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/libfits/include/gfitsio.h	(revision 37730)
@@ -188,5 +188,5 @@
 int   	gfits_fread_ftable             PROTO((FILE *f, FTable *ftable, char *extname)); 
 int   	gfits_fread_ftable_data        PROTO((FILE *f, FTable *ftable, int padIfShort));
-int   	gfits_fread_ftable_range       PROTO((FILE *f, FTable *ftable, off_t start, off_t Nrows));
+int   	gfits_fread_ftable_range       PROTO((FILE *f, int padIfShort, FTable *ftable, off_t start, off_t Nrows));
 int   	gfits_fread_vtable             PROTO((FILE *f, VTable *vtable, char *extname, off_t Nrow, off_t *row));
 int   	gfits_fread_vtable_range       PROTO((FILE *f, VTable *vtable, off_t start, off_t Nrows));
Index: /branches/eam_branches/ipp-20140904/Ohana/src/libfits/table/F_read_T.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/libfits/table/F_read_T.c	(revision 37729)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/libfits/table/F_read_T.c	(revision 37730)
@@ -64,5 +64,5 @@
 
 /*********************** fits read ftable data ***********************************/
-int gfits_fread_ftable_range (FILE *f, FTable *table, off_t start, off_t Nrows) {
+int gfits_fread_ftable_range (FILE *f, int padIfShort, FTable *table, off_t start, off_t Nrows) {
 
   off_t Nbytes, Nread, Nskip, Nx, Ny;
@@ -89,9 +89,17 @@
     if (ferror (f)) {
       perror ("fits read error");
+      free (table[0].buffer);
+      return (FALSE);
+    } 
+    fprintf (stderr, "error: fits read error in %s, read "OFF_T_FMT", need "OFF_T_FMT"\n", __func__,  Nread,  Nbytes);
+    if (padIfShort) {
+      memset (&table[0].buffer[Nread], 0, Nbytes - Nread);
+      fprintf (stderr, "warning: file missing data, padding with zeros: USE AT YOUR OWN RISK!\n");
+      table[0].validsize = Nread;
+      table[0].datasize = Nbytes;
     } else {
-      fprintf (stderr, "unexpected eof\n");
-    }      
-    free (table[0].buffer);
-    return (FALSE);
+      free (table[0].buffer);
+      return (FALSE);
+    }
   }
 
