diff --git a/src/plugins/vcsbase/vcsbaseclientsettings.cpp b/src/plugins/vcsbase/vcsbaseclientsettings.cpp
index 42c810c76f2122c2d110a9491236824b09d84f82..0db56b8a4f448f373097af714685edde91bc8ddf 100644
--- a/src/plugins/vcsbase/vcsbaseclientsettings.cpp
+++ b/src/plugins/vcsbase/vcsbaseclientsettings.cpp
@@ -282,21 +282,21 @@ bool *VCSBaseClientSettings::boolPointer(const QString &key)
 
 QString *VCSBaseClientSettings::stringPointer(const QString &key)
 {
-    if (hasKey(key))
+    if (hasKey(key) && valueType(key) == QVariant::String)
         return d->m_valueHash[key].m_comp.strPtr;
     return 0;
 }
 
 int VCSBaseClientSettings::intValue(const QString &key, int defaultValue) const
 {
-    if (hasKey(key))
+    if (hasKey(key) && valueType(key) == QVariant::Int)
         return d->m_valueHash[key].m_comp.intValue;
     return defaultValue;
 }
 
 bool VCSBaseClientSettings::boolValue(const QString &key, bool defaultValue) const
 {
-    if (hasKey(key))
+    if (hasKey(key) && valueType(key) == QVariant::Bool)
         return d->m_valueHash[key].m_comp.boolValue;
     return defaultValue;
 }