diff --git a/src/plugins/git/gerrit/gerritdialog.cpp b/src/plugins/git/gerrit/gerritdialog.cpp
index 78438801aed880e84ee4b2fd9de98ec7a62ccb60..2ec682dfa37d04c749783febee1b2d61457bdd56 100644
--- a/src/plugins/git/gerrit/gerritdialog.cpp
+++ b/src/plugins/git/gerrit/gerritdialog.cpp
@@ -202,11 +202,11 @@ void GerritDialog::displayRepositoryPath()
     if (m_repositoryChooser->path().isEmpty())
         m_repositoryChooser->setPath(m_parameters->repositoryPath);
     if (m_parameters->promptPath) {
-        m_displayButton->setText(tr("&Diff..."));
+        m_displayButton->setText(tr("&Show..."));
         m_cherryPickButton->setText(tr("Cherry &Pick..."));
         m_checkoutButton->setText(tr("&Checkout..."));
     } else {
-        m_displayButton->setText(tr("&Diff"));
+        m_displayButton->setText(tr("&Show"));
         m_cherryPickButton->setText(tr("Cherry &Pick"));
         m_checkoutButton->setText(tr("&Checkout"));
     }
diff --git a/src/plugins/git/gerrit/gerritplugin.cpp b/src/plugins/git/gerrit/gerritplugin.cpp
index 511b92cdd8b91b38fdd6473fa05616ec4e625f1a..71637952f00989c5392d72d01a57313cd5809d6e 100644
--- a/src/plugins/git/gerrit/gerritplugin.cpp
+++ b/src/plugins/git/gerrit/gerritplugin.cpp
@@ -183,6 +183,7 @@ void FetchContext::start()
 
 void FetchContext::processFinished(int exitCode, QProcess::ExitStatus es)
 {
+    Git::Internal::GitClient *client = Git::Internal::GitPlugin::instance()->gitClient();
     if (es != QProcess::NormalExit) {
         handleError(tr("%1 crashed.").arg(m_git));
         return;
@@ -199,16 +200,22 @@ void FetchContext::processFinished(int exitCode, QProcess::ExitStatus es)
         m_progress.setProgressValue(m_progress.progressValue() + 1);
         switch (m_fetchMode) {
         case FetchDisplay:
-            m_state = WritePatchFileState;
-            startWritePatchFile();
+            if (client->settings()->boolValue(Git::Internal::GitSettings::useDiffEditorKey)) {
+                client->show(m_repository, QLatin1String("FETCH_HEAD"));
+                m_progress.reportFinished();
+                m_state = DoneState;
+                deleteLater();
+            } else {
+                m_state = WritePatchFileState;
+                startWritePatchFile();
+            }
             break;
         case FetchCherryPick:
         case FetchCheckout:
             if (m_fetchMode == FetchCherryPick) {
                 cherryPick();
             } else {
-                Git::Internal::GitPlugin::instance()->gitClient()->synchronousCheckout(
-                            m_repository, QLatin1String("FETCH_HEAD"));
+                client->synchronousCheckout(m_repository, QLatin1String("FETCH_HEAD"));
             }
             m_progress.reportFinished();
             m_state = DoneState;