diff --git a/src/plugins/projectexplorer/outputwindow.cpp b/src/plugins/projectexplorer/outputwindow.cpp
index 9e2d728df774c71a70fc5334d81511d07f903698..3304912f7c7ad2b134e7b02c37fde461f0579736 100644
--- a/src/plugins/projectexplorer/outputwindow.cpp
+++ b/src/plugins/projectexplorer/outputwindow.cpp
@@ -482,6 +482,8 @@ OutputWindow::OutputWindow(QWidget *parent)
     //setCenterOnScroll(false);
     setFrameShape(QFrame::NoFrame);
     setMouseTracking(true);
+    if (!ProjectExplorerPlugin::instance()->projectExplorerSettings().wrapAppOutput)
+        setWordWrapMode(QTextOption::NoWrap);
 
     static uint usedIds = 0;
     Core::ICore *core = Core::ICore::instance();
@@ -520,6 +522,9 @@ OutputWindow::OutputWindow(QWidget *parent)
     redoAction->setEnabled(false);
     cutAction->setEnabled(false);
     copyAction->setEnabled(false);
+
+    connect(ProjectExplorerPlugin::instance(), SIGNAL(settingsChanged()),
+            this, SLOT(updateWordWrapMode()));
 }
 
 OutputWindow::~OutputWindow()
@@ -738,5 +743,13 @@ void OutputWindow::enableUndoRedo()
     setUndoRedoEnabled(true);
 }
 
+void OutputWindow::updateWordWrapMode()
+{
+    if (ProjectExplorerPlugin::instance()->projectExplorerSettings().wrapAppOutput)
+        setWordWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
+    else
+        setWordWrapMode(QTextOption::NoWrap);
+}
+
 } // namespace Internal
 } // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/outputwindow.h b/src/plugins/projectexplorer/outputwindow.h
index b9a59f7104a72c2e32618a5c7a9765feecdfde16..ad6999ea1dd739999c11c22ede94afcff46f2f68 100644
--- a/src/plugins/projectexplorer/outputwindow.h
+++ b/src/plugins/projectexplorer/outputwindow.h
@@ -176,6 +176,9 @@ protected:
     virtual void mouseReleaseEvent(QMouseEvent *e);
     virtual void mouseMoveEvent(QMouseEvent *e);
 
+private slots:
+    void updateWordWrapMode();
+
 private:
     void enableUndoRedo();
     QString doNewlineEnfocement(const QString &out);
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index 8ee1d47475635be9e93b445f64b465ed8a86d12b..5b0ba9b89ac7a3e98f15ce77bd2b9e2ee9b6fe22 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -797,6 +797,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
         d->m_projectExplorerSettings.saveBeforeBuild = s->value("ProjectExplorer/Settings/SaveBeforeBuild", false).toBool();
         d->m_projectExplorerSettings.showCompilerOutput = s->value("ProjectExplorer/Settings/ShowCompilerOutput", false).toBool();
         d->m_projectExplorerSettings.cleanOldAppOutput = s->value("ProjectExplorer/Settings/CleanOldAppOutput", false).toBool();
+        d->m_projectExplorerSettings.wrapAppOutput = s->value("ProjectExplorer/Settings/WrapAppOutput", true).toBool();
         d->m_projectExplorerSettings.useJom = s->value("ProjectExplorer/Settings/UseJom", true).toBool();
         d->m_projectExplorerSettings.environmentId = QUuid(s->value("ProjectExplorer/Settings/EnvironmentId").toString());
         if (d->m_projectExplorerSettings.environmentId.isNull())
@@ -1050,6 +1051,7 @@ void ProjectExplorerPlugin::savePersistentSettings()
         s->setValue("ProjectExplorer/Settings/SaveBeforeBuild", d->m_projectExplorerSettings.saveBeforeBuild);
         s->setValue("ProjectExplorer/Settings/ShowCompilerOutput", d->m_projectExplorerSettings.showCompilerOutput);
         s->setValue("ProjectExplorer/Settings/CleanOldAppOutput", d->m_projectExplorerSettings.cleanOldAppOutput);
+        s->setValue("ProjectExplorer/Settings/WrapAppOutput", d->m_projectExplorerSettings.wrapAppOutput);
         s->setValue("ProjectExplorer/Settings/UseJom", d->m_projectExplorerSettings.useJom);
         s->setValue("ProjectExplorer/Settings/EnvironmentId", d->m_projectExplorerSettings.environmentId.toString());
     }
diff --git a/src/plugins/projectexplorer/projectexplorersettings.h b/src/plugins/projectexplorer/projectexplorersettings.h
index 256f4ef263923119889ec4d1256e235f4e59a24c..26b50a31e75928e47e235cff5ab1267a206d47a6 100644
--- a/src/plugins/projectexplorer/projectexplorersettings.h
+++ b/src/plugins/projectexplorer/projectexplorersettings.h
@@ -37,14 +37,16 @@ namespace Internal {
 
 struct ProjectExplorerSettings
 {
-    ProjectExplorerSettings() : buildBeforeDeploy(true), deployBeforeRun(true), saveBeforeBuild(false),
-                                showCompilerOutput(false), cleanOldAppOutput(false), useJom(true) {}
+    ProjectExplorerSettings() : buildBeforeDeploy(true), deployBeforeRun(true),
+                                saveBeforeBuild(false), showCompilerOutput(false),
+                                cleanOldAppOutput(false), wrapAppOutput(true), useJom(true) {}
 
     bool buildBeforeDeploy;
     bool deployBeforeRun;
     bool saveBeforeBuild;
     bool showCompilerOutput;
     bool cleanOldAppOutput;
+    bool wrapAppOutput;
     bool useJom;
     // Add a UUid which is used to identify the development environment.
     // This is used to warn the user when he is trying to open a .user file that was created
@@ -59,6 +61,7 @@ inline bool operator==(const ProjectExplorerSettings &p1, const ProjectExplorerS
             && p1.saveBeforeBuild == p2.saveBeforeBuild
             && p1.showCompilerOutput == p2.showCompilerOutput
             && p1.cleanOldAppOutput == p2.cleanOldAppOutput
+            && p1.wrapAppOutput == p2.wrapAppOutput
             && p1.useJom == p2.useJom;
 }
 
diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.cpp b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
index 71f6ed60d9e21a67c7d405d3dec02d0fb3a743b2..ec8a14199406118af964cff76393d62a55014af8 100644
--- a/src/plugins/projectexplorer/projectexplorersettingspage.cpp
+++ b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
@@ -70,6 +70,7 @@ ProjectExplorerSettings ProjectExplorerSettingsWidget::settings() const
     pes.saveBeforeBuild = m_ui.saveAllFilesCheckBox->isChecked();
     pes.showCompilerOutput = m_ui.showCompileOutputCheckBox->isChecked();
     pes.cleanOldAppOutput = m_ui.cleanOldAppOutputCheckBox->isChecked();
+    pes.wrapAppOutput = m_ui.wrapAppOutputCheckBox->isChecked();
     pes.useJom = m_ui.jomCheckbox->isChecked();
     return pes;
 }
@@ -81,6 +82,7 @@ void ProjectExplorerSettingsWidget::setSettings(const ProjectExplorerSettings  &
     m_ui.saveAllFilesCheckBox->setChecked(pes.saveBeforeBuild);
     m_ui.showCompileOutputCheckBox->setChecked(pes.showCompilerOutput);
     m_ui.cleanOldAppOutputCheckBox->setChecked(pes.cleanOldAppOutput);
+    m_ui.wrapAppOutputCheckBox->setChecked(pes.wrapAppOutput);
     m_ui.jomCheckbox->setChecked(pes.useJom);
 }
 
diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.ui b/src/plugins/projectexplorer/projectexplorersettingspage.ui
index dc0c30526d12399945b2c1656aa3b8c57f5f4dcf..020f53f7d3851babf0cad88c91410473e01b348b 100644
--- a/src/plugins/projectexplorer/projectexplorersettingspage.ui
+++ b/src/plugins/projectexplorer/projectexplorersettingspage.ui
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>437</width>
-    <height>343</height>
+    <height>389</height>
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_3">
@@ -90,6 +90,13 @@
         </property>
        </widget>
       </item>
+      <item>
+       <widget class="QCheckBox" name="wrapAppOutputCheckBox">
+        <property name="text">
+         <string>Word-wrap application output</string>
+        </property>
+       </widget>
+      </item>
       <item>
        <layout class="QVBoxLayout" name="verticalLayout">
         <property name="spacing">