diff --git a/src/plugins/git/gitsubmiteditor.cpp b/src/plugins/git/gitsubmiteditor.cpp
index fa560d4e0b7926eb66ee0911ddf7eded4fc6816b..2bb63d50e76e94f2793e5d40b1d54c06c938a22e 100644
--- a/src/plugins/git/gitsubmiteditor.cpp
+++ b/src/plugins/git/gitsubmiteditor.cpp
@@ -61,8 +61,10 @@ GitSubmitEditorWidget *GitSubmitEditor::submitEditorWidget()
 
 void GitSubmitEditor::setCommitData(const CommitData &d)
 {
-    submitEditorWidget()->setPanelData(d.panelData);
-    submitEditorWidget()->setPanelInfo(d.panelInfo);
+    GitSubmitEditorWidget *w = submitEditorWidget();
+    w->setPanelData(d.panelData);
+    w->setPanelInfo(d.panelInfo);
+    w->setHasUnmerged(false);
 
     m_commitEncoding = d.commitEncoding;
 
@@ -73,12 +75,14 @@ void GitSubmitEditor::setCommitData(const CommitData &d)
             const FileStates state = it->first;
             const QString file = it->second;
             VcsBase::CheckMode checkMode;
-            if (state & UnmergedFile)
+            if (state & UnmergedFile) {
                 checkMode = VcsBase::Uncheckable;
-            else if (state & StagedFile)
+                w->setHasUnmerged(true);
+            } else if (state & StagedFile) {
                 checkMode = VcsBase::Checked;
-            else
+            } else {
                 checkMode = VcsBase::Unchecked;
+            }
             m_model->addFile(file, CommitData::stateDisplayName(state), checkMode,
                              QVariant(static_cast<int>(state)));
         }
diff --git a/src/plugins/git/gitsubmiteditorwidget.cpp b/src/plugins/git/gitsubmiteditorwidget.cpp
index 6afcc2aa52a3347298a921476ad03000b4ecc021..9e234fd5b491fcc35e1004ee8f026930b8ccd5f4 100644
--- a/src/plugins/git/gitsubmiteditorwidget.cpp
+++ b/src/plugins/git/gitsubmiteditorwidget.cpp
@@ -115,7 +115,8 @@ void GitSubmitHighlighter::highlightBlock(const QString &text)
 // ------------------
 GitSubmitEditorWidget::GitSubmitEditorWidget(QWidget *parent) :
     Utils::SubmitEditorWidget(parent),
-    m_gitSubmitPanel(new QWidget)
+    m_gitSubmitPanel(new QWidget),
+    m_hasUnmerged(false)
 {
     m_gitSubmitPanelUi.setupUi(m_gitSubmitPanel);
     insertTopWidget(m_gitSubmitPanel);
@@ -139,6 +140,11 @@ void GitSubmitEditorWidget::setPanelInfo(const GitSubmitEditorPanelInfo &info)
         m_gitSubmitPanelUi.branchLabel->setText(info.branch);
 }
 
+void GitSubmitEditorWidget::setHasUnmerged(bool e)
+{
+    m_hasUnmerged = e;
+}
+
 GitSubmitEditorPanelData GitSubmitEditorWidget::panelData() const
 {
     GitSubmitEditorPanelData rc;
@@ -159,7 +165,8 @@ void GitSubmitEditorWidget::setPanelData(const GitSubmitEditorPanelData &data)
 bool GitSubmitEditorWidget::canSubmit() const
 {
     if (m_gitSubmitPanelUi.invalidAuthorLabel->isVisible()
-        || m_gitSubmitPanelUi.invalidEmailLabel->isVisible())
+        || m_gitSubmitPanelUi.invalidEmailLabel->isVisible()
+        || m_hasUnmerged)
         return false;
     return SubmitEditorWidget::canSubmit();
 }
diff --git a/src/plugins/git/gitsubmiteditorwidget.h b/src/plugins/git/gitsubmiteditorwidget.h
index f00048a2d0d542aff9eb1d59a531a0762d2397a9..18f93c987e01e4eeb2f976d78f1326a2e8f56f94 100644
--- a/src/plugins/git/gitsubmiteditorwidget.h
+++ b/src/plugins/git/gitsubmiteditorwidget.h
@@ -59,11 +59,10 @@ class GitSubmitEditorWidget : public Utils::SubmitEditorWidget
 public:
     explicit GitSubmitEditorWidget(QWidget *parent = 0);
 
-
     GitSubmitEditorPanelData panelData() const;
     void setPanelData(const GitSubmitEditorPanelData &data);
-
     void setPanelInfo(const GitSubmitEditorPanelInfo &info);
+    void setHasUnmerged(bool e);
 
 protected:
     bool canSubmit() const;
@@ -78,6 +77,7 @@ private:
     QWidget *m_gitSubmitPanel;
     Ui::GitSubmitPanel m_gitSubmitPanelUi;
     QValidator *m_emailValidator;
+    bool m_hasUnmerged;
 };
 
 } // namespace Internal