diff --git a/include/class.variable.php b/include/class.variable.php
index 41bcb619e5587ddce96dce8bdb16d1e5aec7994b..6b0c6b5b8f8368b22984c2beb07b679572a61584 100644
--- a/include/class.variable.php
+++ b/include/class.variable.php
@@ -26,7 +26,7 @@ class VariableReplacer {
 
     var $errors;
 
-    function VariableReplacer($start_delim='%{', $end_delim='}') {
+    function VariableReplacer($start_delim='(?:%{|%%7B)', $end_delim='(?:}|%7D)') {
 
         $this->start_delim = $start_delim;
         $this->end_delim = $end_delim;
@@ -131,7 +131,8 @@ class VariableReplacer {
         $vars = array();
         foreach($result[0] as $k => $v) {
             if(isset($vars[$v])) continue;
-            $val=$this->_resolveVar($result[1][$k]);
+            // Format::html_balance() may urlencode() the contents here
+            $val=$this->_resolveVar(rawurldecode($result[1][$k]));
             if($val!==false)
                 $vars[$v] = $val;
         }