diff --git a/readLib/CMakeLists.txt b/readLib/CMakeLists.txt
index a18b2cf37236423f35ac45b4ba3bd7486f8dc7bc..f6155ac32caa860e170bd3506050c4dbc60b2e5b 100644
--- a/readLib/CMakeLists.txt
+++ b/readLib/CMakeLists.txt
@@ -1,13 +1,22 @@
 find_package (Boost COMPONENTS iostreams REQUIRED)
 
-set (
-  files
-  source/Interface.boost.cc 
-  )
+if (Boost_iostreams_FOUND)
+  set (
+    files
+    source/Interface.boost.cc 
+    )
+else (Boost_iostreams_FOUND)
+  set (
+    files
+    source/Interface.dummy.cc 
+    )
+endif (Boost_iostreams_FOUND)
 
 add_library(libCorsikaData STATIC ${files})
 
-target_link_libraries(libCorsikaData PUBLIC Boost::iostreams)
+if (Boost_iostreams_FOUND)
+  target_link_libraries(libCorsikaData PUBLIC Boost::iostreams)
+endif (Boost_iostreams_FOUND)
 
 set_target_properties (
   libCorsikaData
diff --git a/readLib/corsika_data/Interface.h b/readLib/corsika_data/Interface.h
index c028ab0e739f14a0373c095755b8dea180317d5c..812bd09ee2b86b4645ebef4bc55e0beabff60989 100644
--- a/readLib/corsika_data/Interface.h
+++ b/readLib/corsika_data/Interface.h
@@ -11,8 +11,7 @@ namespace corsika_data {
   void CorDataCloseFile(); 
   double CorDataNextNumber(); 
   int CorDataNextText(std::string& data);
-  bool CorDataCanDeCompress() { return true; }
-
+  bool CorDataCanDeCompress();
 
   // the fortran interface functions
   extern "C" {
@@ -21,7 +20,7 @@ namespace corsika_data {
     void cordataclosefile_(); 
     double cordatanextnumber_();
     int cordatanexttext_(char* data, int length);
-    int cordatacandecompress() { return 1; }
+    int cordatacandecompress();
   }
 }
   
diff --git a/readLib/source/Interface.boost.cc b/readLib/source/Interface.boost.cc
index 4515c5bc2aefc0343aba466645b94bafb06412f9..3f4f0fec9e95edd5a18816359cf54fb0d0d37c2a 100644
--- a/readLib/source/Interface.boost.cc
+++ b/readLib/source/Interface.boost.cc
@@ -59,6 +59,8 @@ namespace corsika_data {
       data[i] = STR[i];
     return 0;
   }
+  bool CorDataCanDeCompress() { return true; }
+
   
   
   extern "C" { 
@@ -75,5 +77,6 @@ namespace corsika_data {
     void cordataclosefile_() {
       global_DataFile.Close();
     }
+    int cordatacandecompress() { return 1; }
   }
 }
diff --git a/readLib/source/Interface.dummy.cc b/readLib/source/Interface.dummy.cc
new file mode 100644
index 0000000000000000000000000000000000000000..80b4ed3e929e06cb96ef54d5bb5c30e5ad659848
--- /dev/null
+++ b/readLib/source/Interface.dummy.cc
@@ -0,0 +1,23 @@
+#include <string>
+#include <stdexcept>
+
+namespace corsika_data {
+
+  // the c++ interface functions
+  void CorDataOpenFile(char*) { std::runtime_error("Cannot read compressed data files with dummy library."); }
+  void CorDataFillArray(double*, const int&) { std::runtime_error("Cannot read compressed data files with dummy library."); }
+  void CorDataCloseFile() { std::runtime_error("Cannot read compressed data files with dummy library."); }
+  double CorDataNextNumber() { std::runtime_error("Cannot read compressed data files with dummy library."); return 0; }
+  int CorDataNextText(std::string&) { std::runtime_error("Cannot read compressed data files with dummy library."); return 0; }
+  bool CorDataCanDeCompress() { return false; }
+
+  // the fortran interface functions
+  extern "C" {
+    void cordataopenfile_(char* name) { CorDataOpenFile(name); }
+    void cordatafillarray_(double* data, const int& length) { CorDataFillArray(data,length); }
+    void cordataclosefile_() { CorDataCloseFile(); }
+    double cordatanextnumber_() { return CorDataNextNumber(); }
+    int cordatanexttext_(char* data) { std::runtime_error("Cannot read compressed data files with dummy library."); return 0; }
+    int cordatacandecompress() { return 0; }
+  }
+}