diff --git a/lib/tasks/gitlab/backup.rake b/lib/tasks/gitlab/backup.rake
index 920d29a444ec7fcae70735210bd00d4b9a213294..d071938acb5193387ea7d6198c6c2bbbe7d1177e 100644
--- a/lib/tasks/gitlab/backup.rake
+++ b/lib/tasks/gitlab/backup.rake
@@ -91,15 +91,20 @@ namespace :gitlab do
       ENV["VERSION"] = "#{settings[:db_version]}" if settings[:db_version].to_i > 0
 
       # backups directory is not always sub of Rails root and able to execute the git rev-parse below
-      Dir.chdir(Rails.root)
-
-      # restoring mismatching backups can lead to unexpected problems
-      if settings[:gitlab_version] != %x{git rev-parse HEAD}.gsub(/\n/,"")
-        puts "GitLab version mismatch:".red
-        puts "  Your current HEAD differs from the HEAD in the backup!".red
-        puts "  Please switch to the following revision and try again:".red
-        puts "  revision: #{settings[:gitlab_version]}".red
-        exit 1
+      begin
+        Dir.chdir(Rails.root)
+
+        # restoring mismatching backups can lead to unexpected problems
+        if settings[:gitlab_version] != %x{git rev-parse HEAD}.gsub(/\n/, "")
+          puts "GitLab version mismatch:".red
+          puts "  Your current HEAD differs from the HEAD in the backup!".red
+          puts "  Please switch to the following revision and try again:".red
+          puts "  revision: #{settings[:gitlab_version]}".red
+          exit 1
+        end
+      ensure
+        # chdir back to original intended dir
+        Dir.chdir(Gitlab.config.backup.path)
       end
 
       Rake::Task["gitlab:backup:db:restore"].invoke