diff --git a/src/plugins/debugger/lldb/guest/lldbengineguest.cpp b/src/plugins/debugger/lldb/guest/lldbengineguest.cpp
index 436e945b66c7252b234a851bc97418ad8648d583..2a590e385cbb914fff8d868a67e4ac43d9d727c7 100644
--- a/src/plugins/debugger/lldb/guest/lldbengineguest.cpp
+++ b/src/plugins/debugger/lldb/guest/lldbengineguest.cpp
@@ -61,8 +61,7 @@
     .arg(QLatin1String(Q_FUNC_INFO))); \
     qDebug("%s", Q_FUNC_INFO)
 
-#define SYNC_INFERIOR QMutexLocker locker(&m_runLock)
-#define SYNC_INFERIOR_OR(x)  if (!m_runLock.tryLock()) { x; } else { m_runLock.unlock(); }; SYNC_INFERIOR
+#define SYNC_INFERIOR_OR(x)  if (m_running) { x; }
 
 
 namespace Debugger {
@@ -79,7 +78,6 @@ void LldbEventListener::listen(lldb::SBListener *listener)
 
 LldbEngineGuest::LldbEngineGuest()
     : IPCEngineGuest()
-    , m_runLock (QMutex::Recursive)
     , m_running (false)
     , m_worker  (new LldbEventListener)
     , m_lldb    (new lldb::SBDebugger)
@@ -304,7 +302,8 @@ void LldbEngineGuest::executeJumpToLine(const QString &fileName, int lineNumber)
 void LldbEngineGuest::activateFrame(qint64 token)
 {
     DEBUG_FUNC_ENTER;
-    SYNC_INFERIOR;
+    SYNC_INFERIOR_OR(showMessage(QLatin1String(
+        "activateFrame called while inferior running")); return);
 
     currentFrameChanged(token);
     m_localesCache.clear();
@@ -658,7 +657,6 @@ void LldbEngineGuest::lldbEvent(lldb::SBEvent *ev)
             switch (m_process->GetState()) {
                 case lldb::eStateRunning: // 5
                     if (!m_running) {
-                        m_runLock.lock();
                         m_running = true;
                     }
                     notifyInferiorPid(m_process->GetProcessID());
@@ -679,7 +677,6 @@ void LldbEngineGuest::lldbEvent(lldb::SBEvent *ev)
                     break;
                 case lldb::eStateExited: // 9
                     if (m_running) {
-                        m_runLock.unlock();
                         m_running = false;
                     }
                     switch (state()) {
@@ -700,7 +697,6 @@ void LldbEngineGuest::lldbEvent(lldb::SBEvent *ev)
                     break;
                 case lldb::eStateStopped: // 4
                     if (m_running) {
-                        m_runLock.unlock();
                         m_running = false;
                     }
                     switch (state()) {
@@ -720,7 +716,6 @@ void LldbEngineGuest::lldbEvent(lldb::SBEvent *ev)
                     break;
                 case lldb::eStateCrashed: // 7
                     if (m_running) {
-                        m_runLock.unlock();
                         m_running = false;
                     }
                     switch (state()) {
diff --git a/src/plugins/debugger/lldb/guest/lldbengineguest.h b/src/plugins/debugger/lldb/guest/lldbengineguest.h
index 4c465410ab24d51c09cf41d4a660412716427d4b..d8d06a6411fc61d119a9e6b5b9f6effc6a79ed61 100644
--- a/src/plugins/debugger/lldb/guest/lldbengineguest.h
+++ b/src/plugins/debugger/lldb/guest/lldbengineguest.h
@@ -35,7 +35,6 @@
 #include <QtCore/QQueue>
 #include <QtCore/QVariant>
 #include <QtCore/QThread>
-#include <QtCore/QMutex>
 #include <QtCore/QStringList>
 
 #include <lldb/API/LLDB.h>
@@ -99,7 +98,6 @@ public:
             const WatchUpdateFlags &flags);
 
 private:
-    QMutex m_runLock;
     bool m_running;
 
     QList<QByteArray> m_arguments;
@@ -133,3 +131,4 @@ private slots:
 } // namespace Debugger
 
 #endif // DEBUGGER_LLDBENGINE_H
+#define SYNC_INFERIOR
diff --git a/src/plugins/debugger/lldb/lldbenginehost.cpp b/src/plugins/debugger/lldb/lldbenginehost.cpp
index 55ea519cda400f1882d3ca84d00f2ff5fbb3f796..34a01b4b5d1cb87b897682b8851a2cecef37d981 100644
--- a/src/plugins/debugger/lldb/lldbenginehost.cpp
+++ b/src/plugins/debugger/lldb/lldbenginehost.cpp
@@ -96,6 +96,7 @@ LldbEngineHost::LldbEngineHost(const DebuggerStartParameters &startParameters)
 
 LldbEngineHost::~LldbEngineHost()
 {
+    showMessage(QLatin1String("tear down qtcreator-lldb"));
     disconnect(m_guestProcess, SIGNAL(finished(int, QProcess::ExitStatus)),
             this, SLOT(finished (int, QProcess::ExitStatus)));
     m_guestProcess->terminate();