Index: trunk/Ohana/src/opihi/cmd.data/read_vectors.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/read_vectors.c	(revision 39533)
+++ trunk/Ohana/src/opihi/cmd.data/read_vectors.c	(revision 39534)
@@ -8,5 +8,5 @@
 
 void read_vectors_cleanup ();
-int read_table_sizes (Header *header);
+int read_table_sizes (Header *header, int isCompressed);
 int read_table_fields (Header *header, int isCompressed, int VERBOSE);
 void list_extnames (int VERBOSE);
@@ -533,6 +533,6 @@
   int IsCompressed = gfits_extension_is_compressed_table (&header);
 
-  if (getSizes && !IsCompressed) {
-    read_table_sizes (&header);
+  if (getSizes) {
+    read_table_sizes (&header, IsCompressed);
     if (CCDKeyword != NULL) free (CCDKeyword); 
     gfits_free_header (&header); 
@@ -546,9 +546,4 @@
   }
   if (IsCompressed) {
-    if (getSizes) {
-      gprint (GP_ERR, "%s[%s] is compressed: -sizes is invalid\n", filename, extname);
-      gfits_free_header (&header); 
-      return FALSE;
-    }
     if ((start > 0) || (Nrows > -1)) {
       gprint (GP_ERR, "%s[%s] is compressed: must read entire table\n", filename, extname);
@@ -715,5 +710,5 @@
 // read -fits foo -fields 
 
-int read_table_sizes (Header *header) {
+int read_table_sizes (Header *header, int IsCompressed) {
   
   int Nfields;
@@ -721,6 +716,18 @@
   gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
 
-  set_int_variable ("table:Nx", header->Naxis[0]);
-  set_int_variable ("table:Ny", header->Naxis[1]);
+  int Nx, Ny;
+  if (IsCompressed) {
+    if (!gfits_scan (header, "ZNAXIS1", "%d", 1, &Nx)) Nx = 0;
+  } else {
+    Nx = header->Naxis[0];
+  }
+  if (IsCompressed) {
+    if (!gfits_scan (header, "ZNAXIS2", "%d", 1, &Ny)) Ny = 0;
+  } else {
+    Ny = header->Naxis[1];
+  }
+
+  set_int_variable ("table:Nx", Nx);
+  set_int_variable ("table:Ny", Ny);
   set_int_variable ("table:Nfields", Nfields);
 
