diff --git a/src/plugins/qnx/blackberryapplicationrunner.cpp b/src/plugins/qnx/blackberryapplicationrunner.cpp
index 34d661d91b030666a8c2164bf4eaf5b3e8f92e09..54e22d76c6a831bdbd6dc7f3df870eb26ea883f6 100644
--- a/src/plugins/qnx/blackberryapplicationrunner.cpp
+++ b/src/plugins/qnx/blackberryapplicationrunner.cpp
@@ -85,6 +85,7 @@ BlackBerryApplicationRunner::BlackBerryApplicationRunner(bool debugMode, BlackBe
     : QObject(parent)
     , m_debugMode(debugMode)
     , m_slog2infoFound(false)
+    , m_currentLogs(false)
     , m_pid(-1)
     , m_appId(QString())
     , m_running(false)
@@ -179,6 +180,7 @@ ProjectExplorer::RunControl::StopResult BlackBerryApplicationRunner::stop()
         return ProjectExplorer::RunControl::AsynchronousStop;
 
     m_stopping = true;
+    m_currentLogs = false;
 
     if (m_testSlog2Process && m_testSlog2Process->isProcessRunning()) {
         m_testSlog2Process->cancel();
@@ -330,19 +332,33 @@ void BlackBerryApplicationRunner::handleTailOutput()
     if (m_slog2infoFound) {
         const QStringList multiLine = message.split(QLatin1Char('\n'));
         Q_FOREACH (const QString &line, multiLine) {
-            QDateTime dateTime = QDateTime::fromString(line.split(m_appId).first().mid(4).trimmed(),
-                                                       QString::fromLatin1("dd HH:mm:ss.zzz"));
-            if (dateTime >= m_launchDateTime) {
-                QStringList validLineBeginnings;
-                validLineBeginnings << QLatin1String("qt-msg      0  ")
-                                    << QLatin1String("qt-msg*     0  ")
-                                    << QLatin1String("default*  9000  ")
-                                    << QLatin1String("default   9000  ")
-                                    << QLatin1String("                           0  ");
-                Q_FOREACH (const QString &beginning, validLineBeginnings) {
-                    if (showQtMessage(beginning, line))
-                        break;
-                }
+            // Check if logs are from the recent launch
+            // Note: This is useless if/once slog2info -b displays only logs from recent launches
+            if (!m_currentLogs) {
+                QDateTime dateTime = QDateTime::fromString(line.split(m_appId).first().mid(4).trimmed(),
+                                                           QString::fromLatin1("dd HH:mm:ss.zzz"));
+
+                m_currentLogs = dateTime >= m_launchDateTime;
+                if (!m_currentLogs)
+                    continue;
+            }
+
+            // The line could be a part of a previous log message that contains a '\n'
+            // In that case only the message body is displayed
+            if (!line.contains(m_appId) && !line.isEmpty()) {
+                emit output(line + QLatin1Char('\n'), Utils::StdOutFormat);
+                continue;
+            }
+
+            QStringList validLineBeginnings;
+            validLineBeginnings << QLatin1String("qt-msg      0  ")
+                                << QLatin1String("qt-msg*     0  ")
+                                << QLatin1String("default*  9000  ")
+                                << QLatin1String("default   9000  ")
+                                << QLatin1String("                           0  ");
+            Q_FOREACH (const QString &beginning, validLineBeginnings) {
+                if (showQtMessage(beginning, line))
+                    break;
             }
         }
         return;
diff --git a/src/plugins/qnx/blackberryapplicationrunner.h b/src/plugins/qnx/blackberryapplicationrunner.h
index f9bf0161d89920b57503ce8169db9a72d3acb5ff..788d0c3dbeb900de6e616005998d325ca6c1e6b2 100644
--- a/src/plugins/qnx/blackberryapplicationrunner.h
+++ b/src/plugins/qnx/blackberryapplicationrunner.h
@@ -98,6 +98,7 @@ private:
 
     bool m_debugMode;
     bool m_slog2infoFound;
+    bool m_currentLogs;
 
     QDateTime m_launchDateTime;