diff --git a/scripts/qt/qt_update_submodules.pl b/scripts/qt/qt_update_submodules.pl
index c72f4e1371147d34a9a2db9b8708d35681bcaa12..325b457cb75f86ca031284ddf456024fdf4a068c 100755
--- a/scripts/qt/qt_update_submodules.pl
+++ b/scripts/qt/qt_update_submodules.pl
@@ -266,6 +266,11 @@ sub update_submodule
         confess "Command `@cmd' did not output a giturl";
     }
 
+    # .gitmodules may contain relative path for submodules
+    if ($giturl eq "../$submodule.git") {
+        $giturl = catfile("qtgitreadonly:qt", "$submodule.git");
+    }
+
     chdir catfile($base_dir, $submodule);
     $self->exe( qw(git fetch --verbose), $giturl, "+$ref:refs/heads/updated_submodule" );