diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 706400b070222647cf701c6741f0ee37b1253085..b735007ec3930d34dc85facea8d1298892720a25 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -1085,7 +1085,7 @@ QProcessEnvironment GitClient::processEnvironment() const
     if (m_settings.adoptPath)
         environment.insert(QLatin1String("PATH"), m_settings.path);
     // Set up SSH and C locale (required by git using perl).
-    VCSBase::VCSBasePlugin::setProcessEnvironment(&environment);
+    VCSBase::VCSBasePlugin::setProcessEnvironment(&environment, false);
     return environment;
 }
 
diff --git a/src/plugins/vcsbase/checkoutjobs.cpp b/src/plugins/vcsbase/checkoutjobs.cpp
index 70ff42c4439261e556efd16e704c78a040b0f794..14bfdd15209fd9b984cc835c603b519d2bb23b88 100644
--- a/src/plugins/vcsbase/checkoutjobs.cpp
+++ b/src/plugins/vcsbase/checkoutjobs.cpp
@@ -72,7 +72,7 @@ ProcessCheckoutJobPrivate::ProcessCheckoutJobPrivate(const QString &b,
 {    
     if (!workingDirectory.isEmpty())
         process->setWorkingDirectory(workingDirectory);
-    VCSBasePlugin::setProcessEnvironment(&processEnv);
+    VCSBasePlugin::setProcessEnvironment(&processEnv, false);
     process->setProcessEnvironment(processEnv);
 }
 
diff --git a/src/plugins/vcsbase/vcsbaseplugin.cpp b/src/plugins/vcsbase/vcsbaseplugin.cpp
index 957395c0074d16d4965565b77cf0e66ea7846cb8..ab5e3fefd1c795e8011e8ea9d6ecc78865231f45 100644
--- a/src/plugins/vcsbase/vcsbaseplugin.cpp
+++ b/src/plugins/vcsbase/vcsbaseplugin.cpp
@@ -686,9 +686,10 @@ bool VCSBasePlugin::isSshPromptConfigured()
     return !sshPrompt().isEmpty();
 }
 
-void VCSBasePlugin::setProcessEnvironment(QProcessEnvironment *e)
+void VCSBasePlugin::setProcessEnvironment(QProcessEnvironment *e, bool forceCLocale)
 {
-    e->insert(QLatin1String("LANG"), QString(QLatin1Char('C')));
+    if (forceCLocale)
+        e->insert(QLatin1String("LANG"), QString(QLatin1Char('C')));
     const QString sshPromptBinary = sshPrompt();
     if (!sshPromptBinary.isEmpty())
         e->insert(QLatin1String("SSH_ASKPASS"), sshPromptBinary);
@@ -738,6 +739,8 @@ Utils::SynchronousProcessResponse
             nsp << "ssh (" << sshPromptConfigured << ')';
         if (flags & SuppressCommandLogging)
             nsp << "suppress_log";
+        if (flags & ForceCLocale)
+            nsp << "c_locale";
         if (outputCodec)
             nsp << " Codec: " << outputCodec->name();
     }
@@ -747,7 +750,7 @@ Utils::SynchronousProcessResponse
     if (!workingDir.isEmpty())
         process.setWorkingDirectory(workingDir);
 
-    VCSBase::VCSBasePlugin::setProcessEnvironment(&env);
+    VCSBase::VCSBasePlugin::setProcessEnvironment(&env, (flags & ForceCLocale));
     process.setProcessEnvironment(env);
     process.setTimeout(timeOutMS);
     if (outputCodec)
diff --git a/src/plugins/vcsbase/vcsbaseplugin.h b/src/plugins/vcsbase/vcsbaseplugin.h
index 191082c6f4f6d8662b3679c966f8ac146ebdca35..d9a22367981b7bbcd3ddc16ba7a40c323e0e4202 100644
--- a/src/plugins/vcsbase/vcsbaseplugin.h
+++ b/src/plugins/vcsbase/vcsbaseplugin.h
@@ -176,10 +176,10 @@ public:
     static QString findRepositoryForDirectory(const QString &dir, const QString &checkFile);
 
     // Set up the environment for a version control command line call.
-    // Sets LANG to 'C' to force English (suppress LOCALE warnings)
-    // and sets up SSH graphical password prompting (note that the latter
-    // requires a terminal-less process).
-    static void setProcessEnvironment(QProcessEnvironment *e);
+    // Sets up SSH graphical password prompting (note that the latter
+    // requires a terminal-less process) and sets LANG to 'C' to force English
+    // (suppress LOCALE warnings/parse commands output) if desired.
+    static void setProcessEnvironment(QProcessEnvironment *e, bool forceCLocale);
     // Returns whether an SSH prompt is configured.
     static bool isSshPromptConfigured();
 
@@ -191,7 +191,8 @@ public:
         SuppressStdErrInLogWindow = 0x8, // No standard error output to VCS output window.
         SuppressFailMessageInLogWindow = 0x10, // No message VCS about failure in VCS output window.
         SuppressCommandLogging = 0x20, // No command log entry in VCS output window.
-        ShowSuccessMessage = 0x40      // Show message about successful completion in VCS output window.
+        ShowSuccessMessage = 0x40,      // Show message about successful completion in VCS output window.
+        ForceCLocale = 0x80             // Force C-locale for commands whose output is parsed.
     };
 
     static Utils::SynchronousProcessResponse