Index: branches/release-34/php/lib/block.mtif.php
===================================================================
--- branches/release-34/php/lib/block.mtif.php (revision 1187)
+++ branches/release-34/php/lib/block.mtif.php (revision 1876)
@@ -78,13 +78,16 @@
         }
 
-        if (isset($args['name']))
-            $var_key = $args['name'];
-        else if(isset($args['var']))
-            $var_key = $args['var'];
-        else if(isset($args['tag']))
-            $var_key = $args['tag'];
         require_once("function.mtsetvar.php");
-        smarty_function_mtsetvar(array('name' => '__name__', 'value' => $var_key), $ctx);
-        smarty_function_mtsetvar(array('name' => '__value__', 'value' => $val), $ctx);
+        if(isset($args['tag'])) {
+            smarty_function_mtsetvar(array('name' => '__cond_tag__', 'value' => $args['tag']), $ctx);
+        }
+        else {
+            if (isset($args['name']))
+                $var_key = $args['name'];
+            else if(isset($args['var']))
+                $var_key = $args['var'];
+            smarty_function_mtsetvar(array('name' => '__cond_name__', 'value' => $var_key), $ctx);
+        }
+        smarty_function_mtsetvar(array('name' => '__cond_value__', 'value' => $val), $ctx);
 
         if ( array_key_exists('op', $args) ) {
@@ -140,6 +143,4 @@
     } else {
         $vars =& $ctx->__stash['vars'];
-        unset($vars['__name__']);
-        unset($vars['__value__']);
         return $ctx->_hdlr_if($args, $content, $ctx, $repeat);
     }
Index: branches/release-34/php/lib/MTViewer.php
===================================================================
--- branches/release-34/php/lib/MTViewer.php (revision 1861)
+++ branches/release-34/php/lib/MTViewer.php (revision 1876)
@@ -249,8 +249,24 @@
         }
         if ((count($args) > 0) && (!isset($args['name']) && !isset($args['var']) && !isset($args['tag']))) {
-            require_once("function.mtgetvar.php");
-            $var = smarty_function_mtgetvar(array('name' => '__name__'), $ctx);
-            if (isset($var) && $var != '')
-                $args['name'] = $var;
+            $vars =& $ctx->__stash['vars'];
+            if ( array_key_exists('__cond_tag__', $vars) ) {
+                $tag = $vars['__cond_tag__'];
+                unset($vars['__cond_tag__']);
+                if ( isset($tag) && $tag )
+                    $args['tag'] = $tag;
+            }
+            else if ( array_key_exists('__cond_name__', $vars) ) {
+                $name = $vars['__cond_name__'];
+                unset($vars['__cond_name__']);
+                if ( isset($name) && $name )
+                    $args['name'] = $name;
+            }
+            if ( array_key_exists('__cond_value__', $vars) ) {
+                $value = $vars['__cond_value__'];
+                unset($vars['__cond_value__']);
+                if ( isset($value) && $value )
+                    $args['value'] = $value;
+            }
+            $ctx->__stash['vars'] =& $vars;
         }
         if (count($args) >= 1) { # else-if case
