diff --git a/src/plugins/git/branchmodel.cpp b/src/plugins/git/branchmodel.cpp
index 927bd58c8abbff21dc8a7e9d9f3eae41d47bf57a..ed8df9321f3bbef83a4a9a50b1794cbfe0f04d0f 100644
--- a/src/plugins/git/branchmodel.cpp
+++ b/src/plugins/git/branchmodel.cpp
@@ -431,7 +431,7 @@ void BranchModel::checkoutBranch(const QModelIndex &idx)
         return;
 
     QString errorMessage;
-    switch (m_client->ensureStash(m_workingDirectory, &errorMessage)) {
+    switch (m_client->ensureStash(m_workingDirectory, QLatin1String("Branch-Checkout"), 0, &errorMessage)) {
     case GitClient::StashUnchanged:
     case GitClient::Stashed:
     case GitClient::NotStashed:
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 3b0630df5ec1152ccccb00adac8c9a8dc1a23c84..a873f1987328a6f0dffc9dd6d136f0f9ceb71d1a 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -1568,17 +1568,17 @@ static inline int askWithDetailedText(QWidget *parent,
 }
 
 // Convenience that pops up an msg box.
-GitClient::StashResult GitClient::ensureStash(const QString &workingDirectory)
+GitClient::StashResult GitClient::ensureStash(const QString &workingDirectory, const QString &keyword, QString *message)
 {
     QString errorMessage;
-    const StashResult sr = ensureStash(workingDirectory, &errorMessage);
+    const StashResult sr = ensureStash(workingDirectory, keyword, message, &errorMessage);
     if (sr == StashFailed)
         outputWindow()->appendError(errorMessage);
     return sr;
 }
 
 // Ensure that changed files are stashed before a pull or similar
-GitClient::StashResult GitClient::ensureStash(const QString &workingDirectory, QString *errorMessage)
+GitClient::StashResult GitClient::ensureStash(const QString &workingDirectory, const QString &keyword, QString *message, QString *errorMessage)
 {
     QString statusOutput;
     switch (gitStatus(workingDirectory, StatusMode(NoUntracked | NoSubmodules),
@@ -1597,14 +1597,17 @@ GitClient::StashResult GitClient::ensureStash(const QString &workingDirectory, Q
     switch (answer) {
         case QMessageBox::Cancel:
             return StashCanceled;
-        case QMessageBox::Yes:
-            if (!executeSynchronousStash(workingDirectory, creatorStashMessage(QLatin1String("push")), errorMessage))
+        case QMessageBox::Yes: {
+            const QString stashMessage = creatorStashMessage(keyword);
+            if (!executeSynchronousStash(workingDirectory, stashMessage, errorMessage))
                 return StashFailed;
+            if (message)
+                *message = stashMessage;
             break;
+        }
         case QMessageBox::No: // At your own risk, so.
             return NotStashed;
         }
-
     return Stashed;
  }
 
diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h
index d7eb76a41fa46e2b1c83a72de5de7e753a733d0c..f0e36309a6e466a2457449a4281528349921cd08 100644
--- a/src/plugins/git/gitclient.h
+++ b/src/plugins/git/gitclient.h
@@ -207,8 +207,8 @@ public:
 
     enum StashResult { StashUnchanged, StashCanceled, StashFailed,
                        Stashed, NotStashed /* User did not want it */ };
-    StashResult ensureStash(const QString &workingDirectory, QString *errorMessage);
-    StashResult ensureStash(const QString &workingDirectory);
+    StashResult ensureStash(const QString &workingDirectory, const QString &keyword, QString *message = 0);
+    StashResult ensureStash(const QString &workingDirectory, const QString &keyword, QString *message, QString *errorMessage);
 
     bool getCommitData(const QString &workingDirectory, bool amend,
                        QString *commitTemplate, CommitData *commitData,
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index e4ffae16283823decba93408fe1c41bd771766ad..6a4491343f1877f01d4efa6800147d209a62ba25 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -901,7 +901,7 @@ void GitPlugin::pull()
         }
     }
 
-    GitClient::StashResult stashResult = m_gitClient->ensureStash(state.topLevel());
+    GitClient::StashResult stashResult = m_gitClient->ensureStash(state.topLevel(), QLatin1String("Pull"));
     switch (stashResult) {
     case GitClient::StashUnchanged:
     case GitClient::Stashed:
@@ -1031,7 +1031,7 @@ void GitPlugin::promptApplyPatch()
 void GitPlugin::applyPatch(const QString &workingDirectory, QString file)
 {
     // Ensure user has been notified about pending changes
-    switch (m_gitClient->ensureStash(workingDirectory)) {
+    switch (m_gitClient->ensureStash(workingDirectory, QLatin1String("Apply-Patch"))) {
     case GitClient::StashUnchanged:
     case GitClient::Stashed:
     case GitClient::NotStashed: