diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1a26a3c5ba54f1ee92b3b842a0103a2783aa4fed..81ff6c2331eb10f35c0972127c0d0cb646176a92 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,7 +18,7 @@ include(cmake/add_dependency.cmake)
 
 add_dependency(ChimeraTK-ControlSystemAdapter 01.05 REQUIRED)
 add_dependency(doocs-server-test-helper 01.03 REQUIRED)
-add_dependency(DOOCS 19.05.0 COMPONENTS server REQUIRED)
+add_dependency(DOOCS 20.03.0 COMPONENTS server REQUIRED)
 
 FIND_PACKAGE(Boost COMPONENTS thread REQUIRED)
 
diff --git a/cmake/Modules/FindConfigGenerator.cmake b/cmake/Modules/FindConfigGenerator.cmake
index 0361e650bd053ad812295651407e2297e821247a..dac414c605f02d88dd282fa39148c05c9b09fd06 100644
--- a/cmake/Modules/FindConfigGenerator.cmake
+++ b/cmake/Modules/FindConfigGenerator.cmake
@@ -26,9 +26,10 @@
 SET(ConfigGenerator_FOUND 0)
 
 
-FIND_PATH(ConfigGenerator_DIR ConfigGeneratorConfigVersion.cmake
-  ${CMAKE_CURRENT_LIST_DIR}
-  /usr/share/llrfConfigGenerator*
+file(GLOB ConfigGenerator_SEARCH_PATHS ${CMAKE_CURRENT_LIST_DIR} "/usr/share/ConfigGenerator*")
+FIND_PATH(ConfigGenerator_DIR
+    NAMES ConfigGeneratorConfigVersion.cmake
+    PATHS ${ConfigGenerator_SEARCH_PATHS}
 )
 
 include(${ConfigGenerator_DIR}/ConfigGeneratorConfigVersion.cmake)
diff --git a/include/DoocsSpectrum.h b/include/DoocsSpectrum.h
index b7685107a932e7b6da907c0f340024c0d823a8aa..bb88c630467bbc19f9077bc8c4cfd98b9662e280 100644
--- a/include/DoocsSpectrum.h
+++ b/include/DoocsSpectrum.h
@@ -73,7 +73,7 @@ namespace ChimeraTK {
 
     void setMacroPulseNumberSource(boost::shared_ptr<ChimeraTK::NDRegisterAccessor<int64_t>> macroPulseNumberSource);
 
-    void write(std::fstream& fptr) override;
+    void write(std::ostream& s) override;
 
     boost::shared_ptr<ChimeraTK::NDRegisterAccessor<float>> _processArray;
     boost::shared_ptr<ChimeraTK::NDRegisterAccessor<float>> _startAccessor;
diff --git a/src/DoocsSpectrum.cc b/src/DoocsSpectrum.cc
index 46fd5bbbdf750530f90835ae15eb10e9421c92db..8776ee9ae3e734abfb0d7b1e8a3593be9bbfd913 100644
--- a/src/DoocsSpectrum.cc
+++ b/src/DoocsSpectrum.cc
@@ -80,7 +80,7 @@ namespace ChimeraTK {
     }
   }
 
-  void DoocsSpectrum::write(std::fstream& fptr) {
+  void DoocsSpectrum::write(std::ostream& s) {
     // DOOCS is normally keeping the location lock until everything is written for that location: all D_spectrum and all
     // other properties. This can take too long (like seconds), which leads to noticable freezes of the UI. As a
     // work-around we release the lock here, wait some time and acquire the lock again. Since this happens in a separate
@@ -89,7 +89,7 @@ namespace ChimeraTK {
     usleep(1000);
     efp_->lock();
     if(!modified) return;
-    D_spectrum::write(fptr);
+    D_spectrum::write(s);
   }
 
   void DoocsSpectrum::updateDoocsBuffer(TransferElementID transferElementId) {