diff --git a/core/detectors/sts/CbmStsSetup.cxx b/core/detectors/sts/CbmStsSetup.cxx
index 106814fa07ba27ad96968dd26cc487c59164233c..b7a59d51ebe8ac52c07ef5d0cc06fbee550ad921 100644
--- a/core/detectors/sts/CbmStsSetup.cxx
+++ b/core/detectors/sts/CbmStsSetup.cxx
@@ -19,6 +19,7 @@
 #include <FairRun.h>     // for FairRun
 
 #include <TCollection.h>       // for TIter
+#include <TDirectory.h>        // for TDirectory, gDirectory
 #include <TFile.h>             // for TFile
 #include <TGeoManager.h>       // for TGeoManager, gGeoManager
 #include <TGeoMatrix.h>        // for TGeoHMatrix
@@ -33,6 +34,7 @@
 #include <cassert>   // for assert
 #include <iomanip>   // for setw, __iom_t6
 #include <iostream>  // for fstream, string, char_traits
+
 #include <string.h>  // for strcmp
 
 using namespace std;
@@ -375,10 +377,15 @@ Bool_t CbmStsSetup::ReadGeometry(const char* fileName) {
   // Exit if a TGeoManager is already present
   assert(!gGeoManager);
 
+  TFile* oldFile     = gFile;
+  TDirectory* oldDir = gDirectory;
+
   // --- Open geometry file
   TFile geoFile(fileName);
   if (!geoFile.IsOpen()) {
     LOG(fatal) << GetName() << ": Could not open geometry file " << fileName;
+    gFile      = oldFile;
+    gDirectory = oldDir;
     return kFALSE;
   }
 
@@ -402,6 +409,8 @@ Bool_t CbmStsSetup::ReadGeometry(const char* fileName) {
   }
   if (!topVolume) {
     LOG(fatal) << GetName() << ": No TOP volume in file!";
+    gFile      = oldFile;
+    gDirectory = oldDir;
     return kFALSE;
   }
   stsGeometry->SetTopVolume(topVolume);
@@ -423,6 +432,8 @@ Bool_t CbmStsSetup::ReadGeometry(const char* fileName) {
   }
   if (!sts) {
     LOG(error) << fName << ": No top STS node found in geometry!";
+    gFile      = oldFile;
+    gDirectory = oldDir;
     return kFALSE;
   }
 
@@ -446,6 +457,8 @@ Bool_t CbmStsSetup::ReadGeometry(const char* fileName) {
   // --- Recursively initialise daughter elements
   InitDaughters();
 
+  gFile      = oldFile;
+  gDirectory = oldDir;
   return kTRUE;
 }
 // -------------------------------------------------------------------------