diff --git a/src/plugins/git/gerrit/gerritplugin.cpp b/src/plugins/git/gerrit/gerritplugin.cpp
index e6c7a6ad2fd879f9acdc4219917d3f31708c29b0..be359a69580bc541d75146b4fe3b48bd75b8c97b 100644
--- a/src/plugins/git/gerrit/gerritplugin.cpp
+++ b/src/plugins/git/gerrit/gerritplugin.cpp
@@ -404,12 +404,9 @@ void GerritPlugin::push()
 
 Utils::FileName GerritPlugin::gitBinary()
 {
-    bool ok;
-    const Utils::FileName git = gitClient()->vcsBinary(&ok);
-    if (!ok) {
+    const Utils::FileName git = gitClient()->vcsBinary();
+    if (git.isEmpty())
         VcsBase::VcsOutputWindow::appendError(tr("Git is not available."));
-        return Utils::FileName();
-    }
     return git;
 }
 
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 395aa92ad4d05aa3f17af8b0da03906f9cebc00a..927baf8e113cae66e8a34a5d7a185b6df1a45740 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -2452,9 +2452,11 @@ bool GitClient::tryLauchingGitK(const QProcessEnvironment &env,
 }
 
 bool GitClient::launchGitGui(const QString &workingDirectory) {
-    bool success;
-    FileName gitBinary = vcsBinary(&success);
-    if (success) {
+    bool success = true;
+    FileName gitBinary = vcsBinary();
+    if (gitBinary.isEmpty()) {
+        success = false;
+    } else {
         success = QProcess::startDetached(gitBinary.toString(), QStringList(QLatin1String("gui")),
                                           workingDirectory);
     }
@@ -2483,14 +2485,13 @@ FileName GitClient::gitBinDirectory()
     return FileName::fromString(path);
 }
 
-FileName GitClient::vcsBinary(bool *ok, QString *errorMessage) const
+FileName GitClient::vcsBinary() const
 {
-    return static_cast<GitSettings &>(settings()).gitExecutable(ok, errorMessage);
-}
-
-int GitClient::vcsTimeout() const
-{
-    return settings().intValue(GitSettings::timeoutKey);
+    bool ok;
+    Utils::FileName binary = static_cast<GitSettings &>(settings()).gitExecutable(&ok);
+    if (!ok)
+        return Utils::FileName();
+    return binary;
 }
 
 QTextCodec *GitClient::encoding(const QString &workingDirectory, const QByteArray &configVar) const
diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h
index ff1854fecca1c4c3a454176e20832b5fc471dd4f..4222db9526a70755707dedc4b80a1981360ef51c 100644
--- a/src/plugins/git/gitclient.h
+++ b/src/plugins/git/gitclient.h
@@ -140,8 +140,7 @@ public:
 
     explicit GitClient();
 
-    Utils::FileName vcsBinary(bool *ok = 0, QString *errorMessage = 0) const;
-    int vcsTimeout() const;
+    Utils::FileName vcsBinary() const;
     unsigned gitVersion(QString *errorMessage = 0) const;
 
     QString findRepositoryForDirectory(const QString &dir) const;
diff --git a/src/plugins/git/gitversioncontrol.cpp b/src/plugins/git/gitversioncontrol.cpp
index 562501b7c042dd98aa25b68630861b6ecc77f667..ca7f4e2543f388d63abcb6c0994814733a9beede 100644
--- a/src/plugins/git/gitversioncontrol.cpp
+++ b/src/plugins/git/gitversioncontrol.cpp
@@ -81,9 +81,7 @@ Core::Id GitVersionControl::id() const
 
 bool GitVersionControl::isConfigured() const
 {
-    bool ok = false;
-    m_client->vcsBinary(&ok);
-    return ok;
+    return !m_client->vcsBinary().isEmpty();
 }
 
 bool GitVersionControl::supportsOperation(Operation operation) const
diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp
index 3b4079f36a96cface6d49da949926f80bc086338..00a493ead877708dd75a16c46d83460201ee6e2b 100644
--- a/src/plugins/vcsbase/vcsbaseclient.cpp
+++ b/src/plugins/vcsbase/vcsbaseclient.cpp
@@ -117,6 +117,16 @@ VcsBaseClientSettings &VcsBaseClientImpl::settings() const
     return *d->m_clientSettings;
 }
 
+Utils::FileName VcsBaseClientImpl::vcsBinary() const
+{
+    return settings().binaryPath();
+}
+
+int VcsBaseClientImpl::vcsTimeout() const
+{
+    return settings().intValue(VcsBaseClientSettings::timeoutKey);
+}
+
 void VcsBaseClientImpl::saveSettings()
 {
     settings().writeSettings(Core::ICore::settings());
@@ -610,16 +620,6 @@ void VcsBaseClient::resetCachedVcsInfo(const QString &workingDir)
     Core::VcsManager::resetVersionControlForDirectory(workingDir);
 }
 
-Utils::FileName VcsBaseClient::vcsBinary() const
-{
-    return settings().binaryPath();
-}
-
-int VcsBaseClient::vcsTimeout() const
-{
-    return settings().intValue(VcsBaseClientSettings::timeoutKey);
-}
-
 void VcsBaseClient::statusParser(const QString &text)
 {
     QList<VcsBaseClient::StatusItem> lineInfoList;
diff --git a/src/plugins/vcsbase/vcsbaseclient.h b/src/plugins/vcsbase/vcsbaseclient.h
index 58375cf2a3a9b121465b1791926a23c6cb5c51c0..1c69dd4c8273bfec13d8c8aa9e30709a43fa56bb 100644
--- a/src/plugins/vcsbase/vcsbaseclient.h
+++ b/src/plugins/vcsbase/vcsbaseclient.h
@@ -73,6 +73,9 @@ public:
 
     VcsBaseClientSettings &settings() const;
 
+    virtual Utils::FileName vcsBinary() const;
+    int vcsTimeout() const;
+
 private:
     void saveSettings();
 
@@ -143,9 +146,6 @@ public:
 
     virtual QProcessEnvironment processEnvironment() const;
 
-    Utils::FileName vcsBinary() const;
-    int vcsTimeout() const;
-
 signals:
     void parsedStatus(const QList<VcsBase::VcsBaseClient::StatusItem> &statusList);
     // Passes on changed signals from VcsJob to Control