diff --git a/core/data/DataLinkDef.h b/core/data/DataLinkDef.h
index f7d571708ff12d8454c9ea465135baf02d9f1176..bb8f3bc87fca2db2f4dd624daaa5d2ee23cff12a 100644
--- a/core/data/DataLinkDef.h
+++ b/core/data/DataLinkDef.h
@@ -119,4 +119,52 @@
 #pragma link C++ class CbmDigiVector < CbmPsdDigi> + ;
 #pragma link C++ class vector < CbmEventStore> + ;
 
+#pragma read sourceClass="CbmTofDigi" version="[1-2]" targetClass="CbmTofDigi" \
+   source="UInt_t fuAddress" target="fuAddress" \
+   include="Logger.h" \
+   code="{ UInt_t system = (onfile.fuAddress >> 0) & ((1 << 4) - 1); \
+           UInt_t smId = (onfile.fuAddress >> 4) & ((1 << 8) - 1); \
+           UInt_t smType = (onfile.fuAddress >> 12) & ((1 << 4) - 1); \
+           UInt_t rpcId = (onfile.fuAddress >> 16) & ((1 << 7) - 1); \
+           UInt_t chSide = (onfile.fuAddress >> 23) & ((1 << 1) - 1); \
+           UInt_t chId = (onfile.fuAddress >> 24) & ((1 << 8) - 1); \
+           if ( smId > 127 || rpcId > 63 || chId > 63 ) { \
+             LOG(error) << \"You are trying to read an outdated version of CbmTofDigi\"; \
+             LOG(error) << \"where the unique tof address can't be converted\"; \
+             LOG(error) << \"automatically to the new tof addressing scheme.\"; \
+             LOG(fatal) << \"Stop execution.\"; \
+           } \
+           UInt_t rpcType = 0; \
+           fuAddress = (system & ((1 << 4) - 1)) \
+                     + ((smId & ((1 << 7) - 1)) << 4) \
+                     + ((smType & ((1 << 4) - 1)) << 11) \
+                     + ((chSide & ((1 << 1) - 1)) << 21) \
+                     + ((rpcId & ((1 << 6) - 1)) << 15) \
+                     + ((chId & ((1 << 6) - 1)) << 22) \
+                     + ((rpcType & ((1 << 4) - 1)) << 28); \
+         }"
+
+#pragma read sourceClass="CbmTofHit" version="[1-4]" targetClass="CbmTofHit" \
+   source="" target="" \
+   include="Logger.h" \
+   code="{ \
+           LOG(error); \
+           LOG(error) << \"You are trying to read an outdated version of CbmTofHit\"; \
+           LOG(error) << \"where the unique tof address can't be converted\"; \
+           LOG(error) << \"automatically to the new tof addressing scheme.\"; \
+           LOG(error); \
+           LOG(fatal) << \"Stop execution.\"; \
+         }"
+
+#pragma read sourceClass="CbmTofPoint" version="[1-3]" targetClass="CbmTofPoint" \
+   source="" target="" \
+   include="Logger.h" \
+   code="{ \
+           LOG(error); \
+           LOG(error) << \"You are trying to read an outdated version of CbmTofPoint\"; \
+           LOG(error) << \"where the unique tof address can't be converted\"; \
+           LOG(error) << \"automatically to the new tof addressing scheme.\"; \
+           LOG(error); \
+           LOG(fatal) << \"Stop execution.\"; \
+         }"
 #endif
diff --git a/core/data/tof/CbmTofDigi.h b/core/data/tof/CbmTofDigi.h
index 920a192fb010333235094edf18b767e18c4c9798..ca696db90b302381e72c5461c0723d9abb177ae9 100644
--- a/core/data/tof/CbmTofDigi.h
+++ b/core/data/tof/CbmTofDigi.h
@@ -170,6 +170,6 @@ private:
     ar& fdTot;
   }
 
-  ClassDefNV(CbmTofDigi, 2);
+  ClassDefNV(CbmTofDigi, 3);
 };
 #endif  // CBMTOFDIGI_H
diff --git a/core/data/tof/CbmTofHit.h b/core/data/tof/CbmTofHit.h
index 6613ad4e8b03d9a8fce4962ff8afc19a3ffe1186..11e82480fc67d3ca42d3e9301b8dce254038ca5a 100644
--- a/core/data/tof/CbmTofHit.h
+++ b/core/data/tof/CbmTofHit.h
@@ -125,7 +125,7 @@ private:
     ar& fChannel;
   }
 
-  ClassDef(CbmTofHit, 4)
+  ClassDef(CbmTofHit, 5)
 };
 
 #endif
diff --git a/core/data/tof/CbmTofPoint.h b/core/data/tof/CbmTofPoint.h
index 9ae7af4c4a55e0b95485a5f0aff932a231b5d07a..86c1929f4206b1f60229c4046836452c773fc133 100644
--- a/core/data/tof/CbmTofPoint.h
+++ b/core/data/tof/CbmTofPoint.h
@@ -131,7 +131,7 @@ private:
   UShort_t fGapMask;  /// Set of gaps traversed
 
 
-  ClassDef(CbmTofPoint, 3)
+  ClassDef(CbmTofPoint, 4)
 };