diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index c8062134dad286c458a9ca9dfd2ea78d0465eba4..9b045178bd233142f4a9f906ad64fdd4825dc552 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -2329,6 +2329,9 @@ QString GitClient::gitVersionString(bool silent, QString *errorMessage) const
 // determine version as '(major << 16) + (minor << 8) + patch' or 0.
 unsigned GitClient::synchronousGitVersion(bool silent, QString *errorMessage) const
 {
+    if (gitBinaryPath().isEmpty())
+        return 0;
+
     // run git --version
     QByteArray outputText;
     QByteArray errorText;
diff --git a/src/plugins/vcsbase/vcsbaseplugin.cpp b/src/plugins/vcsbase/vcsbaseplugin.cpp
index 7af504a7f0f288e2fadf87a69f26f4108a6986e7..4d137dec8d95350527a4d53c76ff50ef710a7eaf 100644
--- a/src/plugins/vcsbase/vcsbaseplugin.cpp
+++ b/src/plugins/vcsbase/vcsbaseplugin.cpp
@@ -793,6 +793,12 @@ static SynchronousProcessResponse runVcsFullySynchronously(const QString &workin
                               unsigned flags,
                               QTextCodec *outputCodec = 0)
 {
+    SynchronousProcessResponse response;
+    if (binary.isEmpty()) {
+        response.result = SynchronousProcessResponse::StartFailed;
+        return response;
+    }
+
     VcsBase::VcsBaseOutputWindow *outputWindow = VcsBase::VcsBaseOutputWindow::instance();
 
     // Set up process
@@ -809,7 +815,6 @@ static SynchronousProcessResponse runVcsFullySynchronously(const QString &workin
     // Start
     process->start(binary, arguments, QIODevice::ReadOnly);
     process->closeWriteChannel();
-    SynchronousProcessResponse response;
     if (!process->waitForStarted()) {
         response.result = SynchronousProcessResponse::StartFailed;
         return response;
@@ -869,6 +874,13 @@ SynchronousProcessResponse VcsBasePlugin::runVcs(const QString &workingDir,
                                                  unsigned flags,
                                                  QTextCodec *outputCodec)
 {
+    SynchronousProcessResponse response;
+
+    if (binary.isEmpty()) {
+        response.result = SynchronousProcessResponse::StartFailed;
+        return response;
+    }
+
     VcsBase::VcsBaseOutputWindow *outputWindow = VcsBase::VcsBaseOutputWindow::instance();
 
     if (!(flags & SuppressCommandLogging))
@@ -901,8 +913,6 @@ SynchronousProcessResponse VcsBasePlugin::runVcs(const QString &workingDir,
 
     VcsBase::VcsBasePlugin::setProcessEnvironment(&env, (flags & ForceCLocale));
 
-    SynchronousProcessResponse response;
-
     if (flags & FullySynchronously) {
         response = runVcsFullySynchronously(workingDir, binary, arguments, timeOutMS,
                                              env, flags, outputCodec);
@@ -964,6 +974,9 @@ bool VcsBasePlugin::runFullySynchronous(const QString &workingDirectory,
                                         int timeoutMS,
                                         bool logCommandToWindow)
 {
+    if (binary.isEmpty())
+        return false;
+
     VcsBase::VcsBaseOutputWindow *outputWindow = VcsBase::VcsBaseOutputWindow::instance();
 
     if (logCommandToWindow)