diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index bb27590aaf6bef981734171cf67c81977556c04b..f70b3438c2acbe9494b040d2a2ea2a0d7eb1e531 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -2383,12 +2383,12 @@ unsigned GitClient::synchronousGitVersion(QString *errorMessage) const
     }
     // cut 'git version 1.6.5.1.sha'
     const QString output = commandOutputFromLocal8Bit(outputText);
-    QRegExp versionPattern(QLatin1String("^[^\\d]+([\\d])\\.([\\d])\\.([\\d]).*$"));
+    QRegExp versionPattern(QLatin1String("^[^\\d]+(\\d+)\\.(\\d+)\\.(\\d+).*$"));
     QTC_ASSERT(versionPattern.isValid(), return 0);
     QTC_ASSERT(versionPattern.exactMatch(output), return 0);
-    const unsigned major = versionPattern.cap(1).toUInt();
-    const unsigned minor = versionPattern.cap(2).toUInt();
-    const unsigned patch = versionPattern.cap(3).toUInt();
+    const unsigned major = versionPattern.cap(1).toUInt(0, 16);
+    const unsigned minor = versionPattern.cap(2).toUInt(0, 16);
+    const unsigned patch = versionPattern.cap(3).toUInt(0, 16);
     return version(major, minor, patch);
 }