diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index 2a82bbda4cf315a0e2bd7b558a50138daf3a7055..ec552df2fbffdf12e2ba00298c12a58709cec832 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -377,18 +377,18 @@ void GdbEngine::handleResponse(const QByteArray &buff)
             GdbMi record;
             while (from != to) {
                 GdbMi data;
-                if (*from == ',') {
-                    ++from; // skip ','
-                    data.parseResultOrValue(from, to);
-                    if (data.isValid()) {
-                        //qDebug() << "parsed response: " << data.toString();
-                        record.m_children += data;
-                        record.m_type = GdbMi::Tuple;
-                    }
-                } else {
+                if (*from != ',') {
                     // happens on archer where we get 
                     // 23^running <NL> *running,thread-id="all" <NL> (gdb) 
                     record.m_type = GdbMi::Tuple;
+                    break;
+                }
+                ++from; // skip ','
+                data.parseResultOrValue(from, to);
+                if (data.isValid()) {
+                    //qDebug() << "parsed response: " << data.toString();
+                    record.m_children += data;
+                    record.m_type = GdbMi::Tuple;
                 }
             }
             if (asyncClass == "stopped") {