diff --git a/pkgs/development/interpreters/xulrunner/builder.sh b/pkgs/development/interpreters/xulrunner/builder.sh
index 8a7f01d3fe3c..0e3d1cca44d1 100644
--- a/pkgs/development/interpreters/xulrunner/builder.sh
+++ b/pkgs/development/interpreters/xulrunner/builder.sh
@@ -7,17 +7,18 @@ postInstall() {
     # This fixes starting Firefox when there already is a running
     # instance.  The `firefox' wrapper script actually expects to be
     # in the same directory as `run-mozilla.sh', apparently.
+    libDir=$(cd $out/lib && ls xulrunner-*)
+    test -n "$libDir"
     cd $out/bin
-    mv xulrunner ../lib/xulrunner-*/
-    ln -s ../lib/xulrunner-*/xulrunner .
+    mv xulrunner ../lib/$libDir/
+    ln -s ../lib/$libDir/xulrunner .
 
     echo "running xulrunner --register-global..."
     $out/bin/xulrunner --register-global || true
 
     # xulrunner wants to create these directories at the first startup
-    cd $out
-    ensureDir ./lib/xulrunner-*/extensions
-    ensureDir ./lib/xulrunner-*/updates
+    ensureDir $out/lib/$libDir/extensions
+    ensureDir $out/lib/$libDir/updates
 }
 
 genericBuild