diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp
index aecb16390ea4fa286d40d6ace74aac57c43d3fb4..1ab408485db96ad73c2b28a87db70f43ea21c850 100644
--- a/src/plugins/qmljseditor/qmljseditor.cpp
+++ b/src/plugins/qmljseditor/qmljseditor.cpp
@@ -35,14 +35,10 @@
 #include "qmloutlinemodel.h"
 
 #include <qmljs/qmljsindenter.h>
-#include <qmljs/qmljsinterpreter.h>
-#include <qmljs/qmljsbind.h>
 #include <qmljs/qmljscheck.h>
-#include <qmljs/qmljsevaluate.h>
 #include <qmljs/qmljsdocument.h>
-#include <qmljs/qmljslink.h>
-#include <qmljs/qmljsscopebuilder.h>
 #include <qmljs/qmljsicontextpane.h>
+#include <qmljs/qmljslookupcontext.h>
 #include <qmljs/parser/qmljsastvisitor_p.h>
 #include <qmljs/parser/qmljsast_p.h>
 #include <qmljs/parser/qmljsengine_p.h>
@@ -1230,14 +1226,9 @@ TextEditor::BaseTextEditor::Link QmlJSTextEditor::findLinkAt(const QTextCursor &
 
     AST::Node *node = semanticInfo.nodeUnderCursor(cursorPosition);
 
-    Interpreter::Engine interp;
-    Interpreter::Context context(&interp);
-    QmlJS::Link linkedSnapshot(&context, semanticInfo.document, semanticInfo.snapshot, m_modelManager->importPaths());
-    ScopeBuilder scopeBuilder(semanticInfo.document, &context);
-    scopeBuilder.push(semanticInfo.astPath(cursorPosition));
+    LookupContext::Ptr lookupContext = LookupContext::create(semanticInfo.document, semanticInfo.snapshot, semanticInfo.astPath(cursorPosition));
+    const Interpreter::Value *value = lookupContext->evaluate(node);
 
-    Evaluate check(&context);
-    const Interpreter::Value *value = check.reference(node);
     QString fileName;
     int line = 0, column = 0;