diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index f84a24086867f5d771646350f83afe2e58413083..668c06d910325f667179bf272777b920a54018d1 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -1077,16 +1077,12 @@ bool GitPlugin::submitEditorAboutToClose()
         return true;
     // Prompt user. Force a prompt unless submit was actually invoked (that
     // is, the editor was closed or shutdown).
-    VcsBase::VcsBaseSubmitEditor::PromptSubmitResult answer;
-    if (editor->forceClose()) {
-        answer = VcsBase::VcsBaseSubmitEditor::SubmitDiscarded;
-    } else {
-        bool promptData = false;
-        answer = editor->promptSubmit(tr("Closing Git Editor"),
-                     tr("Do you want to commit the change?"),
-                     tr("Git will not accept this commit. Do you want to continue to edit it?"),
-                     &promptData, !m_submitActionTriggered, false);
-    }
+    bool promptData = false;
+    const VcsBase::VcsBaseSubmitEditor::PromptSubmitResult answer
+            = editor->promptSubmit(tr("Closing Git Editor"),
+                 tr("Do you want to commit the change?"),
+                 tr("Git will not accept this commit. Do you want to continue to edit it?"),
+                 &promptData, !m_submitActionTriggered, false);
     m_submitActionTriggered = false;
     switch (answer) {
     case VcsBase::VcsBaseSubmitEditor::SubmitCanceled:
diff --git a/src/plugins/git/gitsubmiteditor.cpp b/src/plugins/git/gitsubmiteditor.cpp
index a3b6a7454df0209e0b99ce0ab32384f5c934d756..e35e298e88a69aa1ecd42dc2fab7a42f40b60531 100644
--- a/src/plugins/git/gitsubmiteditor.cpp
+++ b/src/plugins/git/gitsubmiteditor.cpp
@@ -90,7 +90,6 @@ GitSubmitEditor::GitSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *p
     m_model(0),
     m_commitEncoding(0),
     m_commitType(SimpleCommit),
-    m_forceClose(false),
     m_firstUpdate(true)
 {
     connect(this, SIGNAL(diffSelectedFiles(QList<int>)), this, SLOT(slotDiffSelected(QList<int>)));
@@ -186,14 +185,12 @@ void GitSubmitEditor::updateFileModel()
     QString errorMessage, commitTemplate;
     CommitData data(m_commitType);
     if (client->getCommitData(m_workingDirectory, &commitTemplate, data, &errorMessage)) {
-        m_forceClose = false;
         setCommitData(data);
         submitEditorWidget()->refreshLog(m_workingDirectory);
         widget()->setEnabled(true);
     } else {
         // Nothing to commit left!
         VcsBase::VcsBaseOutputWindow::instance()->appendError(errorMessage);
-        m_forceClose = true;
         m_model->clear();
         widget()->setEnabled(false);
     }
diff --git a/src/plugins/git/gitsubmiteditor.h b/src/plugins/git/gitsubmiteditor.h
index 45c2a5e87c4c1c8ccabafbfaeab8456f348544b6..ed5b3924d7493addec57eb5c3b2431039f8823bd 100644
--- a/src/plugins/git/gitsubmiteditor.h
+++ b/src/plugins/git/gitsubmiteditor.h
@@ -53,7 +53,6 @@ public:
 
     void setCommitData(const CommitData &);
     GitSubmitEditorPanelData panelData() const;
-    bool forceClose() { updateFileModel(); return m_forceClose; }
     CommitType commitType() const { return m_commitType; }
     QString amendSHA1() const;
 
@@ -78,7 +77,6 @@ private:
     QTextCodec *m_commitEncoding;
     CommitType m_commitType;
     QString m_amendSHA1;
-    bool m_forceClose;
     QString m_workingDirectory;
     bool m_firstUpdate;
 };
diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
index 6aa9b5f347e146bd6a302a3b00814b31359dbe76..d8355f61d012a19ffd8a6dbf18aff6912ce90117 100644
--- a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
+++ b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
@@ -547,6 +547,9 @@ VcsBaseSubmitEditor::PromptSubmitResult
 
     Core::EditorManager::activateEditor(this, Core::EditorManager::IgnoreNavigationHistory);
 
+    if (!submitWidget->isEnabled())
+        return SubmitDiscarded;
+
     QString errorMessage;
     QMessageBox::StandardButton answer = QMessageBox::Yes;