anchor.diff:              {regular, [{var, Line, Key} | Out], Args}
       end;
       
  -transl(nil, [{tag, _Line, [TagName | TagArgs]}], Out, Args, _) ->
  -    io:format("TRACE ~p:~p {TagName, TagArgs} ~p~n",[?MODULE, ?LINE, {TagName, TagArgs}]),
  -    Out2 = load_tag(TagName, TagArgs, Out, default),    
  +transl(nil, [{tag, _Line, [TagName | TagArgs]}], Out, Args, _, Ext) ->
  +    Out2 = load_tag(TagName, TagArgs, Out, default, Ext),    
       {regular, Out2, Args};
   
  -transl(nil, [Token], Out, Args, _) ->
  +transl(nil, [Token], Out, Args, _, _) ->
       {regular, [Token | Out], Args}; 
   	
  -transl([H | T], [{var, Line, Val}], Out, Args, DocRoot) ->
  +transl([H | T], [{var, Line, Val}], Out, Args, DocRoot, Ext) ->
       case lists:keysearch(Val, 2, Args) of
           false ->           
               Key = list_to_atom(lists:concat(["A", length(Args) + 1])),
  -            transl(H, T, [{var, Line, Key} | Out], [{Key, Val} | Args], DocRoot);
  +            transl(H, T, [{var, Line, Key} | Out], [{Key, Val} | Args], DocRoot, Ext);
           {value, {Key, _}} ->  
  -            transl(H, T, [{var, Line, Key} | Out], Args, DocRoot)
  +            transl(H, T, [{var, Line, Key} | Out], Args, DocRoot, Ext)
   	end;	 
   	
  -transl([H | T], [{tag, _Line, [TagName | TagArgs]}], Out, Args, DocRoot) ->
  -    io:format("TRACE ~p:~p {TagName, TagArgs} ~p~n",[?MODULE, ?LINE, {TagName, TagArgs}]),
  -    Out2 = load_tag(TagName, TagArgs, Out, default),
  -    transl(H, T, Out2, Args, DocRoot);
  -	
  -transl([H | T], [Token], Out, Args, DocRoot) ->      
  -    transl(H, T, [Token | Out], Args, DocRoot).
  -
  -
  -replace_block({block, _Line, Name, [nil, Val]}, List, Args) ->
  +transl([H | T], [{tag, _Line, [TagName | TagArgs]}], Out, Args, DocRoot, Ext) ->
  +    Out2 = load_tag(TagName, TagArgs, Out, default, Ext),
  +    transl(H, T, Out2, Args, DocRoot, Ext);
  +	
  +transl([H | T], [Token], Out, Args, DocRoot, Ext) ->      
  +    transl(H, T, [Token | Out], Args, DocRoot, Ext).
  +
  +
  +replace_block({block, _Line, Name, [nil, Val]}, List, Args, Ext) ->
   	case lists:keysearch(Name, 3, List) of
   		false -> 
   			{Val, Args};
   		{value, {_, _, _, [H | T]}} ->  
  -		    {_, List2, Args2} = transl(H, T, [], Args, undefined),
  +		    {_, List2, Args2} = transl(H, T, [], Args, undefined, Ext),
   		    {lists:reverse(List2), Args2} 
    	end;
  -replace_block(Other, _What, Args) ->	
  +replace_block(Other, _What, Args, _) ->	
   	{Other, Args}.
       
   	
  
positive.code:     Reply = case parse(File) of
          {ok, Ast} ->
  		    RelDir = rel_dir(filename:dirname(File), DocRoot),
              compile_reload_ast(Ast, ModuleName, FunctionName, RelDir);
          {error, Msg} = Err ->
              io:format("TRACE ~p:~p ~p~n",[?MODULE, ?LINE, File ++ " Parser failure:"]),
              io:format("TRACE ~p:~p ~p~n",[?MODULE, ?LINE, Msg]),
  
negative.code: 	end.
  	
  
  compile_reload_ast([H | T], ModuleName, FunctionName, RelDir, Ext) ->
      {List, Args} = case transl(H, T, [], [], RelDir, Ext) of
  	    {regular, List0, Args0} ->
  		    {[inplace_block(X) ||  X <- List0], Args0};
  		{inherited, List0, Arg0} ->
  