diff --git a/lib/gitlab/version_info.rb b/lib/gitlab/version_info.rb
index 31b72720972e7fb1155418d43e740499fe3963d6..6ee41e85cc9bf33c10b690df09ca735b22f3790f 100644
--- a/lib/gitlab/version_info.rb
+++ b/lib/gitlab/version_info.rb
@@ -5,7 +5,7 @@ module Gitlab
     attr_reader :major, :minor, :patch
 
     def self.parse(str)
-      if m = str.match(/(\d+)\.(\d+)\.(\d+)/)
+      if str && m = str.match(/(\d+)\.(\d+)\.(\d+)/)
         VersionInfo.new(m[1].to_i, m[2].to_i, m[3].to_i)
       else
         VersionInfo.new
diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake
index 59c2449444a4b436fdb3c56937ce1fe6cdeb2704..c1815b7eee78ee426e6efb4de3ad935261029cb8 100644
--- a/lib/tasks/gitlab/check.rake
+++ b/lib/tasks/gitlab/check.rake
@@ -659,7 +659,7 @@ namespace :gitlab do
     current_version = Gitlab::VersionInfo.parse(gitlab_shell_version)
 
     print "GitLab Shell version >= #{required_version} ? ... "
-    if required_version <= current_version
+    if current_version.valid? && required_version <= current_version
       puts "OK (#{current_version})".green
     else
       puts "FAIL. Please update gitlab-shell to #{required_version} from #{current_version}".red
@@ -673,7 +673,7 @@ namespace :gitlab do
     puts "Your git bin path is \"#{Gitlab.config.git.bin_path}\""
     print "Git version >= #{required_version} ? ... "
 
-    if required_version <= current_version
+    if current_version.valid? && required_version <= current_version
         puts "yes (#{current_version})".green
     else
       puts "no".red