diff --git a/lib/SimpleSAML/Utilities.php b/lib/SimpleSAML/Utilities.php
index b794f89ec60bc323613ee4cbdd83d2779aae3bc8..313f09e4e4c7407c7f87b3f318d4e926d40970fc 100644
--- a/lib/SimpleSAML/Utilities.php
+++ b/lib/SimpleSAML/Utilities.php
@@ -166,7 +166,12 @@ class SimpleSAML_Utilities {
 			$oldQuery = array();
 			$url .= '?';
 		} else {
-			$oldQuery = self::parseQueryString(substr($url, $queryStart + 1));
+			$oldQuery = substr($url, $queryStart + 1);
+			if($oldQuery === FALSE) {
+				$oldQuery = array();
+			} else {
+				$oldQuery = self::parseQueryString($oldQuery);
+			}
 			$url = substr($url, 0, $queryStart + 1);
 		}