diff --git a/core/dictgen/src/rootcling_impl.cxx b/core/dictgen/src/rootcling_impl.cxx
index a6e7ab9dfe26e..3967297ff9436 100644
--- a/core/dictgen/src/rootcling_impl.cxx
+++ b/core/dictgen/src/rootcling_impl.cxx
@@ -3317,8 +3317,9 @@ static std::string GenerateFwdDeclString(const RScanner &scan,
selectedDecls.begin(),
[](const ROOT::TMetaUtils::AnnotatedRecordDecl& rcd){return rcd.GetRecordDecl();});
- for (auto* TD: scan.fSelectedTypedefs)
- selectedDecls.push_back(TD);
+ selectedDecls.insert(selectedDecls.begin(), scan.fSelectedNamespaces.begin(), scan.fSelectedNamespaces.end());
+ selectedDecls.insert(selectedDecls.begin(), scan.fSelectedTypedefs.begin(), scan.fSelectedTypedefs.end());
+ selectedDecls.insert(selectedDecls.begin(), scan.fSelectedEnums.begin(), scan.fSelectedEnums.end());
// for (auto* VAR: scan.fSelectedVariables)
// selectedDecls.push_back(VAR);