diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index e5013832ef61322b4d4e5979386ab7fc5810b50d..233b46170b4f0c63033929781e837bd727816700 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -586,6 +586,8 @@ private:
                 unexpectedElement(_xml.name(), tag);
             }
         }
+
+        metaObject->addMethod(method);
     }
 
     void readParam(FakeMetaMethod *method)
@@ -640,7 +642,6 @@ private:
         }
 
         FakeMetaMethod method(name, type);
-        metaObject->addMethod(method);
 
         while (_xml.readNextStartElement()) {
             if (_xml.name() == QLatin1String("param")) {
@@ -649,6 +650,8 @@ private:
                 unexpectedElement(_xml.name(), tag);
             }
         }
+
+        metaObject->addMethod(method);
     }
 
 private: