diff --git a/src/plugins/vcsbase/submiteditorwidget.cpp b/src/plugins/vcsbase/submiteditorwidget.cpp
index da3745dfbc3f6e31260df8a5e81bd05b0fb6b8e8..23c05af07793e7ac3799845476021cf5251655c6 100644
--- a/src/plugins/vcsbase/submiteditorwidget.cpp
+++ b/src/plugins/vcsbase/submiteditorwidget.cpp
@@ -34,6 +34,7 @@
 
 #include <QDebug>
 #include <QPointer>
+#include <QTextBlock>
 #include <QTimer>
 #include <QScopedPointer>
 
@@ -299,11 +300,21 @@ static QString wrappedText(const QTextEdit *e)
     QTextCursor cursor(e->document());
     cursor.movePosition(QTextCursor::Start);
     while (!cursor.atEnd()) {
-        cursor.select(QTextCursor::LineUnderCursor);
-        rc += cursor.selectedText();
-        rc += newLine;
-        cursor.movePosition(QTextCursor::EndOfLine); // Mac needs it
-        cursor.movePosition(QTextCursor::NextCharacter);
+        const QString block = cursor.block().text();
+        if (block.startsWith(QLatin1Char('\t'))) { // Don't wrap
+            rc += block + newLine;
+        } else {
+            forever {
+                cursor.select(QTextCursor::LineUnderCursor);
+                rc += cursor.selectedText();
+                rc += newLine;
+                cursor.movePosition(QTextCursor::EndOfLine); // Mac needs it
+                if (cursor.atBlockEnd())
+                    break;
+                cursor.movePosition(QTextCursor::NextCharacter);
+            }
+        }
+        cursor.movePosition(QTextCursor::NextBlock);
     }
     return rc;
 }