diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp
index e17223bf223ece1ae18f3e067fbe831bf94b9f5a..c3604a803191f9641284f0521ed9b45ba2f44fb6 100644
--- a/src/plugins/debugger/gdb/trkgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/trkgdbadapter.cpp
@@ -806,22 +806,23 @@ void TrkGdbAdapter::handleGdbServerCommand(const QByteArray &cmd)
         // http://sourceware.org/ml/gdb/2007-05/msg00038.html
         // Name=hexname,TextSeg=textaddr[,DataSeg=dataaddr]
         sendGdbServerAck();
-        QByteArray response; // = "m";
+        QByteArray response = "m";
         // FIXME: Limit packet length by using qsDllInfo packages?
-        foreach (const Library &lib, m_session.libraries) {
+        for (int i = 0; i != m_session.libraries.size(); ++i) {
+            if (i)
+                response += ';';
+            const Library &lib = m_session.libraries.at(i);
             response += "Name=" + lib.name.toHex()
                 + ",TextSeg=" + hexNumber(lib.codeseg)
                 + ",DataSeg=" + hexNumber(lib.dataseg);
-            response += ';';
         }
-        response += "l";
         sendGdbServerMessage(response, "library information transfered");
     }
 
     else if (cmd == "qsDllInfo") {
         // That's a following query package
         sendGdbServerAck();
-        sendGdbServerMessage("", "FIXME: nothing?");
+        sendGdbServerMessage("l", "library information transfer finished");
     }
 
     else if (cmd == "qPacketInfo") {