diff --git a/core/meta/src/TClass.cxx b/core/meta/src/TClass.cxx
index e5c3d5cc22ccee0bdaab1c2bd5c1c1e6c56d3a99..29715e99bccf68a2a06c17aac219b0f78906c444 100644
--- a/core/meta/src/TClass.cxx
+++ b/core/meta/src/TClass.cxx
@@ -3854,6 +3854,15 @@ void TClass::GetMissingDictionariesWithRecursionCheck(TCollection& result, TColl
       return;
    }
 
+   if (TClassEdit::IsUniquePtr(fName)) {
+      const auto uniquePtrClName = TClassEdit::GetUniquePtrType(fName);
+      auto uniquePtrCl = TClass::GetClass(uniquePtrClName.c_str());
+      if (uniquePtrCl && !uniquePtrCl->HasDictionary()) {
+         uniquePtrCl->GetMissingDictionariesWithRecursionCheck(result, visited, recurse);
+      }
+      return;
+   }
+
    if (!HasDictionary()) {
       result.Add(this);
    }