Index: /trunk/Ohana/src/tools/src/ftable.c
===================================================================
--- /trunk/Ohana/src/tools/src/ftable.c	(revision 39330)
+++ /trunk/Ohana/src/tools/src/ftable.c	(revision 39331)
@@ -497,19 +497,35 @@
 
   int i, Nfields;
-  char field[16], type[80], comment[80], format[80], unit[80], null[80], nval[80];
+  char field[32], type[80], comment[80], format[80], unit[80], null[80], nval[80];
 
   gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
 
+  int isCompressed = gfits_extension_is_compressed_table (header);
+
   for (i = 1; i <= Nfields; i++) {
-    sprintf (field, "TTYPE%d", i);
+    memset (field,   0, 32);
+    memset (type,    0, 80);
+    memset (comment, 0, 80);
+    memset (format,  0, 80);
+    memset (unit,    0, 80);
+    memset (null,    0, 80);
+    memset (nval,    0, 80);
+
+    snprintf (field, 32, "TTYPE%d", i);
     gfits_scan (header, field, "%s", 1, type);
     gfits_scan_alt (header, field, "%C", 1, comment);
-    sprintf (field, "TFORM%d", i);
+
+    if (!isCompressed) {
+      snprintf (field, 32, "TFORM%d", i);
+    } else {
+      snprintf (field, 32, "ZFORM%d", i);
+    }
     gfits_scan (header, field, "%s", 1, format);
-    sprintf (field, "TUNIT%d", i);
+
+    snprintf (field, 32, "TUNIT%d", i);
     gfits_scan (header, field, "%s", 1, unit);
-    sprintf (field, "TNULL%d", i);
+    snprintf (field, 32, "TNULL%d", i);
     if (!gfits_scan (header, field, "%s", 1, null)) strcpy (null, "none");
-    sprintf (field, "TNVAL%d", i);
+    snprintf (field, 32, "TNVAL%d", i);
     if (!gfits_scan (header, field, "%s", 1, nval)) strcpy (nval, "none");
 
