diff --git a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarData.cpp b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarData.cpp
index 63f122b307e09142e21ba36291adf03206b731d8..e8032ea01125d1aab097409f471160c2da423f9e 100644
--- a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarData.cpp
+++ b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarData.cpp
@@ -70,6 +70,7 @@ std::istream& operator>>(std::istream& is, AlosSarData& data)
       {
         record->Read(is);
         data._records[header.get_rec_seq()] = record;
+        eof = true;
       }
       else
       {
@@ -141,6 +142,9 @@ bool AlosSarData::saveState(ossimKeywordlist& kwl,
   {
     kwl.add(prefix, "num_lines", datafiledesc->get_num_lines(),true);
     kwl.add(prefix, "num_pix_in_line", datafiledesc->get_num_pix_in_line(),true);
+    // FIXME debug
+    std::cout << std::endl << "num_lines = " << datafiledesc->get_num_lines() << std::endl;
+    std::cout << std::endl << "num_pix_in_line = " << datafiledesc->get_num_pix_in_line() << std::endl;
   }
   else
   {
diff --git a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarDataFileDescriptor.cpp b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarDataFileDescriptor.cpp
index babdd25a997576fa31f2cdd5390b395c9b744079..ea310045b5e8285208b5281027d58f67ea60b25d 100644
--- a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarDataFileDescriptor.cpp
+++ b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarDataFileDescriptor.cpp
@@ -36,21 +36,35 @@ std::istream& operator>>(std::istream& is, AlosSarDataFileDescriptor& data)
   char buf6[7];
   buf6[6] = '\0';
 
-  char buf180[181];
-  buf180[180] = '\0';
+  char buf168[169];
+  buf168[168] = '\0';
 
-  is.read(buf180,180);
+  char buf94[95];
+  buf94[94] = '\0';
+
+  char buf8[9];
+  buf8[8] = '\0';
+
+  is.read(buf168,168);
 
   is.read(buf6,6);
   data._num_lines = atoi(buf6);
+  // FIXME debug
+  std::cout << std::endl << "buf6: {" << buf6 << "}" << std::endl;
 
-  is.read(buf6,6);
-  data._num_pix_in_line = atoi(buf6);
+  is.read(buf94,94);
+
+  int tmpval;
+  is.read(buf8,8);
+  tmpval = atoi(buf8);
+  data._num_pix_in_line = tmpval/8; // Assume data always in 8-byte complex format
+  // FIXME debug
+  std::cout << std::endl << "buf8: {" << buf8 << "}" << std::endl;
 
-  char buf528[528];
-  buf528[528] = '\0';
+  char buf432[433];
+  buf432[432] = '\0';
 
-  is.read(buf528,528);
+  is.read(buf432,432);
   return is;
 }