Index: Macros.js
===================================================================
--- Macros.js	(revision 11258)
+++ Macros.js	(working copy)
@@ -109,30 +109,34 @@
 {
 	params = paramString.parseParams("name",null,true,false,true);
 	var names = params[0]["name"];
+	
 	var tiddlerName = names[0];
 	var className = names[1] || null;
 	var args = params[0]["with"];
 	var wrapper = createTiddlyElement(place,"span",null,className);
-	if(!args) {
+	var data = params[0]["data"];
+	if(!args && !data) {
 		wrapper.setAttribute("refresh","content");
 		wrapper.setAttribute("tiddler",tiddlerName);
 	}
+	
 	var text = store.getTiddlerText(tiddlerName);
-	if(text) {
-		var stack = config.macros.tiddler.tiddlerStack;
-		if(stack.indexOf(tiddlerName) !== -1)
-			return;
-		stack.push(tiddlerName);
-		try {
-			var n = args ? Math.min(args.length,9) : 0;
-			for(var i=0; i<n; i++) {
-				var placeholderRE = new RegExp("\\$" + (i + 1),"mg");
-				text = text.replace(placeholderRE,args[i]);
-			}
-			config.macros.tiddler.renderText(wrapper,text,tiddlerName,params);
-		} finally {
-			stack.pop();
+	if(!text) text = "";
+	if(data)tiddlerName = data;
+	var stack = config.macros.tiddler.tiddlerStack;
+	if(stack.indexOf(tiddlerName) !== -1)
+		return;
+	stack.push(tiddlerName);
+	try {
+		var n = args ? Math.min(args.length,9) : 0;
+		for(var i=0; i<n; i++) {
+			var placeholderRE = new RegExp("\\$" + (i + 1),"mg");
+			text = text.replace(placeholderRE,args[i]);
 		}
+  
+		config.macros.tiddler.renderText(wrapper,text,tiddlerName,params);
+	} finally {
+		stack.pop();
 	}
 };
 

