diff --git a/src/plugins/debugger/debugger.pro b/src/plugins/debugger/debugger.pro
index 64401106191e739d66feabab42d77e1811401ddb..165fda07c117f2688743be0019e2652673f13a9d 100644
--- a/src/plugins/debugger/debugger.pro
+++ b/src/plugins/debugger/debugger.pro
@@ -112,8 +112,13 @@ include(cdb/cdb.pri)
 include(gdb/gdb.pri)
 include(script/script.pri)
 include(pdb/pdb.pri)
-include(qml/qml.pri)
 include(tcf/tcf.pri)
 include(shared/shared.pri)
 
+include(../../private_headers.pri)
+exists($${QT_PRIVATE_HEADERS}/QtDeclarative/private/qdeclarativecontext_p.h) {
+  DEFINES += QML_ENGINE=1
+  include(qml/qml.pri)
+}
+
 OTHER_FILES += Debugger.pluginspec
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp
index 6d6fed29eb7987807c67709c8ae8dba2a2859de2..4965fea71944f2679033e0774a60b2fbee956a83 100644
--- a/src/plugins/debugger/debuggerrunner.cpp
+++ b/src/plugins/debugger/debuggerrunner.cpp
@@ -370,9 +370,11 @@ void DebuggerRunControl::createEngine(const DebuggerStartParameters &sp)
         case TcfEngineType:
             m_engine = createTcfEngine(sp);
             break;
+#if defined(QML_ENGINE)
         case QmlEngineType:
             m_engine = createQmlEngine(sp);
             break;
+#endif
         default: {
             // Could not find anything suitable.
             debuggingFinished();