diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index b9237424a8769999c4f998e49a60475a7f73b180..356ebbabcfa587691e41be916d92a6265f781d00 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -513,7 +513,6 @@ private:
         }
 
         FakeMetaEnum metaEnum(name);
-        metaObject->addEnum(metaEnum);
 
         while (_xml.readNextStartElement()) {
             if (_xml.name() == QLatin1String("enumerator"))
@@ -521,6 +520,8 @@ private:
             else
                 unexpectedElement(_xml.name(), tag);
         }
+
+        metaObject->addEnum(metaEnum);
     }
 
     void readEnumerator(FakeMetaEnum *metaEnum)