diff --git a/src/plugins/git/commitdata.cpp b/src/plugins/git/commitdata.cpp
index 77b296a07f9dc87ac05833307748b14ae81ffd9f..c7e9097d512c9ccfd5db6b75e5af0850a5a84f08 100644
--- a/src/plugins/git/commitdata.cpp
+++ b/src/plugins/git/commitdata.cpp
@@ -76,6 +76,10 @@ QDebug operator<<(QDebug d, const GitSubmitEditorPanelData &data)
     return d;
 }
 
+CommitData::CommitData(CommitType type) : commitType(type)
+{
+}
+
 void CommitData::clear()
 {
     panelInfo.clear();
diff --git a/src/plugins/git/commitdata.h b/src/plugins/git/commitdata.h
index 746d5d259ad14c5ce843125c85a24cc875b5b75a..6688843dd5d4b08195bab0d9b296a2cfbbb16462 100644
--- a/src/plugins/git/commitdata.h
+++ b/src/plugins/git/commitdata.h
@@ -30,6 +30,8 @@
 #ifndef COMMITDATA_H
 #define COMMITDATA_H
 
+#include "gitsettings.h" // CommitType
+
 #include <QStringList>
 #include <QPair>
 
@@ -85,6 +87,7 @@ Q_DECLARE_FLAGS(FileStates, FileState)
 class CommitData
 {
 public:
+    CommitData(CommitType type = SimpleCommit);
     // A pair of state string/file name ('modified', 'file.cpp').
     typedef QPair<FileStates, QString> StateFilePair;
 
@@ -99,6 +102,7 @@ public:
 
     static QString stateDisplayName(const FileStates &state);
 
+    CommitType commitType;
     QString amendSHA1;
     QString commitEncoding;
     GitSubmitEditorPanelInfo panelInfo;
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 9ab41a2fd127a0b7c8326bc48f86c1ac6782fc19..c1d9161551ce56626a5fb5b94ff2538a3c3c0f16 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -2018,7 +2018,6 @@ QString GitClient::gitBinaryPath(bool *ok, QString *errorMessage) const
 }
 
 bool GitClient::getCommitData(const QString &workingDirectory,
-                              CommitType commitType,
                               QString *commitTemplate,
                               CommitData *commitData,
                               QString *errorMessage)
@@ -2047,7 +2046,7 @@ bool GitClient::getCommitData(const QString &workingDirectory,
     case  StatusChanged:
         break;
     case StatusUnchanged:
-        if (commitType == AmendCommit)
+        if (commitData->commitType == AmendCommit) // amend might be run just for the commit message
             break;
         *errorMessage = msgNoChangedFiles();
         return false;
@@ -2081,7 +2080,7 @@ bool GitClient::getCommitData(const QString &workingDirectory,
         }
         commitData->files = filteredFiles;
 
-        if (commitData->files.isEmpty() && commitType != AmendCommit) {
+        if (commitData->files.isEmpty() && commitData->commitType != AmendCommit) {
             *errorMessage = msgNoChangedFiles();
             return false;
         }
@@ -2090,7 +2089,7 @@ bool GitClient::getCommitData(const QString &workingDirectory,
     commitData->commitEncoding = readConfigValue(workingDirectory, QLatin1String("i18n.commitEncoding"));
 
     // Get the commit template or the last commit message
-    switch (commitType) {
+    switch (commitData->commitType) {
     case AmendCommit: {
         // Amend: get last commit data as "SHA1<tab>author<tab>email<tab>message".
         QStringList args(QLatin1String("log"));
diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h
index 6564ee6437dd8b01676ac1d98d9c1045ce07cc41..377b4240fb886cd6b11b6c6746e3f482c8539663 100644
--- a/src/plugins/git/gitclient.h
+++ b/src/plugins/git/gitclient.h
@@ -261,9 +261,8 @@ public:
 
     QString readConfigValue(const QString &workingDirectory, const QString &configVar) const;
 
-    bool getCommitData(const QString &workingDirectory, CommitType commitType,
-                       QString *commitTemplate, CommitData *commitData,
-                       QString *errorMessage);
+    bool getCommitData(const QString &workingDirectory, QString *commitTemplate,
+                       CommitData *commitData, QString *errorMessage);
 
     bool addAndCommit(const QString &workingDirectory,
                       const GitSubmitEditorPanelData &data,
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index c62e57dbaa5b470838947911493cfff3af8da1c6..bad45c3b37ad13b9abab7b95d46952055e792e40 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -896,8 +896,8 @@ void GitPlugin::startCommit(CommitType commitType)
     QTC_ASSERT(state.hasTopLevel(), return);
 
     QString errorMessage, commitTemplate;
-    CommitData data;
-    if (!m_gitClient->getCommitData(state.topLevel(), commitType, &commitTemplate, &data, &errorMessage)) {
+    CommitData data(commitType);
+    if (!m_gitClient->getCommitData(state.topLevel(), &commitTemplate, &data, &errorMessage)) {
         VcsBase::VcsBaseOutputWindow::instance()->append(errorMessage);
         return;
     }
@@ -917,7 +917,7 @@ void GitPlugin::startCommit(CommitType commitType)
         return;
     }
     m_commitMessageFileName = saver.fileName();
-    openSubmitEditor(m_commitMessageFileName, data, commitType);
+    openSubmitEditor(m_commitMessageFileName, data);
 }
 
 void GitPlugin::updateVersionWarning()
@@ -940,7 +940,7 @@ void GitPlugin::updateVersionWarning()
                         Core::InfoBarEntry::GlobalSuppressionEnabled));
 }
 
-Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const CommitData &cd, CommitType commitType)
+Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const CommitData &cd)
 {
     Core::IEditor *editor = Core::EditorManager::openEditor(fileName, Constants::GITSUBMITEDITOR_ID,
                                                 Core::EditorManager::ModeSwitch);
@@ -952,9 +952,8 @@ Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const Commit
     submitEditor->registerActions(m_undoAction, m_redoAction, m_submitCurrentAction, m_diffSelectedFilesAction);
     submitEditor->setCommitData(cd);
     submitEditor->setCheckScriptWorkingDirectory(m_submitRepository);
-    const QString title = (commitType == AmendCommit) ? tr("Amend %1").arg(cd.amendSHA1) : tr("Git Commit");
+    const QString title = (cd.commitType == AmendCommit) ? tr("Amend %1").arg(cd.amendSHA1) : tr("Git Commit");
     submitEditor->setDisplayName(title);
-    submitEditor->setCommitType(commitType);
     connect(submitEditor, SIGNAL(diff(QStringList,QStringList)), this, SLOT(submitEditorDiff(QStringList,QStringList)));
     connect(submitEditor, SIGNAL(merge(QStringList)), this, SLOT(submitEditorMerge(QStringList)));
     return editor;
diff --git a/src/plugins/git/gitplugin.h b/src/plugins/git/gitplugin.h
index da5f9a8843d3ff9909a9b93a804600c5b3f3b512..34e9f289a86cd0bd969d1f72c1ada7cd944d9803 100644
--- a/src/plugins/git/gitplugin.h
+++ b/src/plugins/git/gitplugin.h
@@ -192,7 +192,7 @@ private:
     void updateContinueAndAbortCommands();
     void updateRepositoryBrowserAction();
     bool isCommitEditorOpen() const;
-    Core::IEditor *openSubmitEditor(const QString &fileName, const CommitData &cd, CommitType commitType);
+    Core::IEditor *openSubmitEditor(const QString &fileName, const CommitData &cd);
     void cleanCommitMessageFile();
     void cleanRepository(const QString &directory);
     void applyPatch(const QString &workingDirectory, QString file = QString());
diff --git a/src/plugins/git/gitsubmiteditor.cpp b/src/plugins/git/gitsubmiteditor.cpp
index bb7a93a887e5132ef70a40c98ddb2fb7dd4b43cf..da3d1df4b84db4f12a6e914cc8360fb393489e7c 100644
--- a/src/plugins/git/gitsubmiteditor.cpp
+++ b/src/plugins/git/gitsubmiteditor.cpp
@@ -110,6 +110,8 @@ void GitSubmitEditor::setCommitData(const CommitData &d)
 
     m_commitEncoding = d.commitEncoding;
     m_workingDirectory = d.panelInfo.repository;
+    m_commitType = d.commitType;
+    setEmptyFileListEnabled(m_commitType == AmendCommit); // Allow for just correcting the message
 
     m_model = new GitSubmitFileModel(this);
     if (!d.files.isEmpty()) {
@@ -133,12 +135,6 @@ void GitSubmitEditor::setCommitData(const CommitData &d)
     setFileModel(m_model, d.panelInfo.repository);
 }
 
-void GitSubmitEditor::setCommitType(CommitType commitType)
-{
-    m_commitType = commitType;
-    setEmptyFileListEnabled(commitType == AmendCommit); // Allow for just correcting the message
-}
-
 void GitSubmitEditor::slotDiffSelected(const QList<int> &rows)
 {
     // Sort it apart into unmerged/staged/unstaged files
@@ -167,8 +163,8 @@ void GitSubmitEditor::updateFileModel()
         return;
     GitClient *client = GitPlugin::instance()->gitClient();
     QString errorMessage, commitTemplate;
-    CommitData data;
-    if (client->getCommitData(m_workingDirectory, m_commitType, &commitTemplate, &data, &errorMessage)) {
+    CommitData data(m_commitType);
+    if (client->getCommitData(m_workingDirectory, &commitTemplate, &data, &errorMessage)) {
         setCommitData(data);
     } else {
         VcsBase::VcsBaseOutputWindow::instance()->append(errorMessage);
diff --git a/src/plugins/git/gitsubmiteditor.h b/src/plugins/git/gitsubmiteditor.h
index ca6e0cf7f16f32bab1f1628baad060f5c538779b..e2d79e5fb73f281b6b020b7bfe7cfb254fe30363 100644
--- a/src/plugins/git/gitsubmiteditor.h
+++ b/src/plugins/git/gitsubmiteditor.h
@@ -54,7 +54,6 @@ public:
     explicit GitSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters, QWidget *parent);
 
     void setCommitData(const CommitData &);
-    void setCommitType(CommitType commitType);
     GitSubmitEditorPanelData panelData() const;
     bool forceClose() const { return m_forceClose; }