diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 3a1de0ebcdf76a1adeb96c4ab94c4fc4f5487dc2..8e47c99f8f02d355360ec8a9b9694fa027a97395 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -1264,6 +1264,20 @@ QString GitClient::synchronousTopic(const QString &workingDirectory)
     if (!branch.isEmpty())
         return data.topic = branch;
 
+    switch (checkCommandInProgressInGitDir(gitDir)) {
+    case Rebase:
+    case RebaseMerge:
+        return data.topic = tr("Rebasing");
+    case Revert:
+        return data.topic = tr("Reverting");
+    case CherryPick:
+        return data.topic = tr("Cherry Picking");
+    case Merge:
+        return data.topic = tr("Merging");
+    default:
+        break;
+    }
+
     // Detached HEAD, try a tag or remote branch
     QStringList references;
     if (!synchronousHeadRefs(workingDirectory, &references))
@@ -1892,10 +1906,8 @@ GitClient::StatusResult GitClient::gitStatus(const QString &workingDirectory, St
     return StatusUnchanged;
 }
 
-GitClient::CommandInProgress GitClient::checkCommandInProgress(const QString &workingDirectory)
+GitClient::CommandInProgress GitClient::checkCommandInProgressInGitDir(const QString &gitDir)
 {
-    QString gitDir = findGitDirForRepository(workingDirectory);
-
     if (QFile::exists(gitDir + QLatin1String("/MERGE_HEAD")))
         return Merge;
     else if (QFile::exists(gitDir + QLatin1String("/rebase-apply/rebasing")))
@@ -1910,6 +1922,11 @@ GitClient::CommandInProgress GitClient::checkCommandInProgress(const QString &wo
         return NoCommand;
 }
 
+GitClient::CommandInProgress GitClient::checkCommandInProgress(const QString &workingDirectory)
+{
+    return checkCommandInProgressInGitDir(findGitDirForRepository(workingDirectory));
+}
+
 void GitClient::continueCommandIfNeeded(const QString &workingDirectory)
 {
     switch (checkCommandInProgress(workingDirectory)) {
diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h
index 32ef837d1767775136a883420557ff58277c6271..549869b39f0e5170e8383a9b1e2a7057ffab0e50 100644
--- a/src/plugins/git/gitclient.h
+++ b/src/plugins/git/gitclient.h
@@ -281,6 +281,8 @@ public:
                            QString *errorMessage = 0);
 
     CommandInProgress checkCommandInProgress(const QString &workingDirectory);
+    CommandInProgress checkCommandInProgressInGitDir(const QString &gitDir);
+
     void continueCommandIfNeeded(const QString &workingDirectory);
     void continuePreviousGitCommand(const QString &workingDirectory, const QString &msgBoxTitle, QString msgBoxText,
                                     const QString &buttonName, const QString &gitCommand, bool requireChanges = true);