This is simple : tests to ensure that something passed through a chain of VMS is actually updated correctly in the context #macro(bar $a) #set($b = $a + $a) #end #macro( foo $b) #set($b = 1) #bar($b) #end #set($b = 0) #foo($b) $b