diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index 0db41193eb1308f5546ea8381f3e7133d3cbbc22..5a07ab9af72bc97d6f84877f3e7b751c1446fd02 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -1870,8 +1870,21 @@ void GdbEngine::jumpToLineExec(const QString &fileName, int lineNumber)
 
 void GdbEngine::setTokenBarrier()
 {
-    foreach (const GdbCookie &ck, m_cookieForToken)
-        QTC_ASSERT(ck.synchronized || ck.type == GdbInvalidCommand, return);
+    foreach (const GdbCookie &cookie, m_cookieForToken) {
+        QTC_ASSERT(
+            cookie.synchronized
+                || cookie.type == GdbInvalidCommand
+                // FIXME: use something like "command classes" for these cases:
+                || cookie.type == GdbInfoProc
+                || cookie.type == GdbStubAttached
+                || cookie.type == ModulesList
+                || cookie.type == WatchDebuggingHelperSetup
+                || cookie.type == GdbQueryDebuggingHelper,
+            qDebug() << "CMD: " << cookie.command << "TYPE: " << cookie.type
+                << "SYNC: " << cookie.synchronized;
+            return
+        );
+    }
     PENDING_DEBUG("\n--- token barrier ---\n");
     emit gdbInputAvailable(QString(), "--- token barrier ---");
     m_oldestAcceptableToken = currentToken();
diff --git a/tests/auto/debugger/main.cpp b/tests/auto/debugger/main.cpp
index f59a54a6790c92e5b99ac94de0d93404559c0b92..13ece24e546c4eb56a9530658c3736f5cd4d88c6 100644
--- a/tests/auto/debugger/main.cpp
+++ b/tests/auto/debugger/main.cpp
@@ -142,6 +142,7 @@ int main(int argc, char *argv[])
 
     if (args.size() == 2 && args.at(1) == "--run-debuggee") {
         runDebuggee();
+        app.exec();
         return 0;
     }