diff --git a/core/data/fsd/CbmFsdAddress.cxx b/core/data/fsd/CbmFsdAddress.cxx
index 2e00ae4c02f11bb3acff6362a8fb204294029eca..c33bf7d7c20c4bdfea0eaf2fc51966b75960503b 100644
--- a/core/data/fsd/CbmFsdAddress.cxx
+++ b/core/data/fsd/CbmFsdAddress.cxx
@@ -57,7 +57,7 @@ int32_t CbmFsdAddress::GetMotherAddress(int32_t address, int32_t level)
   using namespace Detail;
   if (!(level >= static_cast<int32_t>(CbmFsdAddress::Level::System)
         && level < static_cast<int32_t>(CbmFsdAddress::Level::NumLevels))) {
-    throw std::out_of_range("CbmFsdAddress: Illegal element level" + level);
+    throw std::out_of_range(std::string("CbmFsdAddress: Illegal element level ") + std::to_string(level));
     return 0;
   }
   if (level == static_cast<uint32_t>(CbmFsdAddress::Level::NumLevels) - 1) return address;
@@ -75,7 +75,7 @@ uint32_t CbmFsdAddress::GetElementId(int32_t address, int32_t level)
   using namespace Detail;
   if (!(level >= static_cast<int32_t>(CbmFsdAddress::Level::System)
         && level < static_cast<int32_t>(CbmFsdAddress::Level::NumLevels))) {
-    throw std::out_of_range("CbmFsdAddress: Illegal element level" + level);
+    throw std::out_of_range(std::string("CbmFsdAddress: Illegal element level ") + std::to_string(level));
     return 0;
   }
   uint32_t version = GetVersion(address);
@@ -106,7 +106,7 @@ int32_t CbmFsdAddress::SetElementId(int32_t address, int32_t level, uint32_t new
   using namespace Detail;
   if (!(level >= static_cast<int32_t>(CbmFsdAddress::Level::System)
         && level < static_cast<int32_t>(CbmFsdAddress::Level::NumLevels))) {
-    throw std::out_of_range("CbmFsdAddress: Illegal element level" + level);
+    throw std::out_of_range(std::string("CbmFsdAddress: Illegal element level ") + std::to_string(level));
     return 0;
   }
   uint32_t version = GetVersion(address);