diff --git a/core/meta/CMakeLists.txt b/core/meta/CMakeLists.txt
index c06d2728bc7ff17ef2381daab69b911a7d0c5459..dddf7d77db4bec00db88c53af65ca553213314e4 100644
--- a/core/meta/CMakeLists.txt
+++ b/core/meta/CMakeLists.txt
@@ -48,6 +48,8 @@ set(Meta_dict_headers
   TVirtualIsAProxy.h
   TVirtualRefProxy.h
   TVirtualStreamerInfo.h
+  TVirtualArray.h
+  TVirtualObject.h
   PARENT_SCOPE
 )
 
diff --git a/core/meta/inc/LinkDef.h b/core/meta/inc/LinkDef.h
index e36a6a09f1a0f457f69106954760b375b41ba6c6..68aa95e68158e8b60678441089b7beed97586370 100644
--- a/core/meta/inc/LinkDef.h
+++ b/core/meta/inc/LinkDef.h
@@ -35,6 +35,8 @@
 #pragma link C++ class ROOT::TSchemaRule+;
 #pragma link C++ class ROOT::TSchemaRule::TSources+;
 #pragma link C++ class ROOT::Detail::TSchemaRuleSet-;
+#pragma link C++ options=version(0) class TVirtualObject-;
+#pragma link C++ options=version(0) class TVirtualArray-;
 #pragma link C++ class TGlobal;
 #pragma link C++ class TMethod;
 #pragma link C++ class TMethodArg;
diff --git a/io/io/inc/TVirtualArray.h b/core/meta/inc/TVirtualArray.h
similarity index 100%
rename from io/io/inc/TVirtualArray.h
rename to core/meta/inc/TVirtualArray.h
diff --git a/io/io/inc/TVirtualObject.h b/core/meta/inc/TVirtualObject.h
similarity index 100%
rename from io/io/inc/TVirtualObject.h
rename to core/meta/inc/TVirtualObject.h
diff --git a/io/io/CMakeLists.txt b/io/io/CMakeLists.txt
index c30101938d3889ebd67ff1ee1c4124ffeadb8bbf..eea2ee9fb0cb2e8313e4147a5b6bb003104bc1cc 100644
--- a/io/io/CMakeLists.txt
+++ b/io/io/CMakeLists.txt
@@ -99,8 +99,6 @@ ROOT_GENERATE_DICTIONARY(G__RIO
   TStreamerInfoActions.h
   TVirtualCollectionIterators.h
   TStreamerInfo.h
-  TVirtualObject.h
-  TVirtualArray.h
   TZIPFile.h
   ${RIO_EXTRA_HEADERS}
   STAGE1
diff --git a/io/io/inc/LinkDef.h b/io/io/inc/LinkDef.h
index 535068c8b44e961f9e612fac6dc3cfdfe7b8a1f7..46fa9cd483ffb51548dc55c3d57e0235ee261cad 100644
--- a/io/io/inc/LinkDef.h
+++ b/io/io/inc/LinkDef.h
@@ -44,8 +44,6 @@
 #pragma link C++ class TCollectionStreamer-;
 #pragma link C++ class TCollectionClassStreamer-;
 #pragma link C++ class TCollectionMemberStreamer-;
-#pragma link C++ options=version(0) class TVirtualObject-;
-#pragma link C++ options=version(0) class TVirtualArray-;
 #pragma link C++ class TFPBlock+;
 #pragma link C++ class TFilePrefetch+;
 #pragma link C++ namespace TStreamerInfoActions;