diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
index 31ec3bc29f2fe19a8385554093889912215b7096..0700c35d88a1fca6f0083e8004dae9f6f05de98b 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
@@ -170,8 +170,10 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV
        connect(m_qmlPuppetEditorProcess.data(), SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus)));
        connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), m_qmlPuppetEditorProcess.data(), SLOT(kill()));
        bool fowardQmlpuppetOutput = !qgetenv("FORWARD_QMLPUPPET_OUTPUT").isEmpty();
-       if (fowardQmlpuppetOutput)
-           m_qmlPuppetEditorProcess->setProcessChannelMode(QProcess::ForwardedChannels);
+       if (fowardQmlpuppetOutput) {
+           m_qmlPuppetEditorProcess->setProcessChannelMode(QProcess::MergedChannels);
+           connect(m_qmlPuppetEditorProcess.data(), SIGNAL(readyRead()), this, SLOT(printEditorProcessOutput()));
+       }
        m_qmlPuppetEditorProcess->start(applicationPath, QStringList() << socketToken << "editormode" << "-graphicssystem raster");
 
        if (runModus == NormalModus) {
@@ -180,8 +182,10 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV
            m_qmlPuppetPreviewProcess->setObjectName("PreviewProcess");
            connect(m_qmlPuppetPreviewProcess.data(), SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus)));
            connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), m_qmlPuppetPreviewProcess.data(), SLOT(kill()));
-           if (fowardQmlpuppetOutput)
-               m_qmlPuppetPreviewProcess->setProcessChannelMode(QProcess::ForwardedChannels);
+           if (fowardQmlpuppetOutput) {
+               m_qmlPuppetPreviewProcess->setProcessChannelMode(QProcess::MergedChannels);
+               connect(m_qmlPuppetPreviewProcess.data(), SIGNAL(readyRead()), this, SLOT(printPreviewProcessOutput()));
+           }
            m_qmlPuppetPreviewProcess->start(applicationPath, QStringList() << socketToken << "previewmode" << "-graphicssystem raster");
 
            m_qmlPuppetRenderProcess = new QProcess;
@@ -189,8 +193,10 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV
            m_qmlPuppetRenderProcess->setObjectName("RenderProcess");
            connect(m_qmlPuppetRenderProcess.data(), SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus)));
            connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), m_qmlPuppetRenderProcess.data(), SLOT(kill()));
-           if (fowardQmlpuppetOutput)
-               m_qmlPuppetRenderProcess->setProcessChannelMode(QProcess::ForwardedChannels);
+           if (fowardQmlpuppetOutput) {
+               m_qmlPuppetRenderProcess->setProcessChannelMode(QProcess::MergedChannels);
+               connect(m_qmlPuppetRenderProcess.data(), SIGNAL(readyRead()), this, SLOT(printRenderProcessOutput()));
+           }
            m_qmlPuppetRenderProcess->start(applicationPath, QStringList() << socketToken << "rendermode" << "-graphicssystem raster");
 
        }
@@ -523,6 +529,37 @@ void NodeInstanceServerProxy::readThirdDataStream()
     }
 }
 
+void NodeInstanceServerProxy::printEditorProcessOutput()
+{
+    while (m_qmlPuppetEditorProcess->canReadLine()) {
+        QByteArray line = m_qmlPuppetEditorProcess->readLine();
+        line.chop(1);
+        qDebug().nospace() << "Editor Puppet: " << qPrintable(line);
+    }
+    qDebug() << "\n";
+}
+
+void NodeInstanceServerProxy::printPreviewProcessOutput()
+{
+    while (m_qmlPuppetPreviewProcess->canReadLine()) {
+        QByteArray line = m_qmlPuppetPreviewProcess->readLine();
+        line.chop(1);
+        qDebug().nospace() << "Preview Puppet: " << qPrintable(line);
+    }
+    qDebug() << "\n";
+}
+
+void NodeInstanceServerProxy::printRenderProcessOutput()
+{
+    while (m_qmlPuppetRenderProcess->canReadLine()) {
+        QByteArray line = m_qmlPuppetRenderProcess->readLine();
+        line.chop(1);
+        qDebug().nospace() << "Render Puppet: " << qPrintable(line);
+    }
+
+    qDebug() << "\n";
+}
+
 QString NodeInstanceServerProxy::qmlPuppetApplicationName() const
 {
     if (hasQtQuick2(m_nodeInstanceView.data()))
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h
index a8f0b44ff080ce18b24470aba7d9c271bc6e0c77..1f2d092d7823254f5ca34ed81e5e69c1d9a09f96 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h
@@ -88,6 +88,9 @@ private slots:
     void readSecondDataStream();
     void readThirdDataStream();
 
+    void printEditorProcessOutput();
+    void printPreviewProcessOutput();
+    void printRenderProcessOutput();
 private:
     QFile m_captureFileForTest;
     QWeakPointer<QLocalServer> m_localServer;