diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index f9a33fef0db030916f81dccdeb9207b52ed366a4..c8862eece381d9a5686a8882b4b505038449d3d3 100644
--- a/inc/parser/xhtml.php
+++ b/inc/parser/xhtml.php
@@ -560,15 +560,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
         global $conf;
         global $ID;
 
-        $params = array();
-
-        if (preg_match('/^([^?]*)\?([^?]+)$/', $id, $matches)) {
-            $id = $matches[1];
-            preg_match_all('/(?<=[&^])([^=]+)=([^=]*)(?:&|$)/', $matches[2],
-                           $matches, PREG_SET_ORDER);
-            foreach($matches as &$param) {
-                $params[$param[1]] = $param[2];
-            }
+        $params = '';
+        $parts = explode('?', $id, 2);
+        if (count($parts) === 2) {
+            $id = $parts[0];
+            $params = $parts[1];
         }
 
         // default name is based on $id as given