Index: generic/tclInterp.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclInterp.c,v
retrieving revision 1.44
diff -u -r1.44 tclInterp.c
--- generic/tclInterp.c	18 Aug 2004 19:59:00 -0000	1.44
+++ generic/tclInterp.c	10 Sep 2004 20:42:54 -0000
@@ -1463,17 +1463,20 @@
 
     slavePtr = &((InterpInfo *) ((Interp *) slaveInterp)->interpInfo)->slave;
     while (1) {
-	Alias *oldAliasPtr;
+	Tcl_Obj *newToken;
 	char *string;
 	
-	string = Tcl_GetString(namePtr);
+	string = Tcl_GetString(aliasPtr->namePtr);
 	hPtr = Tcl_CreateHashEntry(&slavePtr->aliasTable, string, &new);
 	if (new != 0) {
 	    break;
 	}
 
-	oldAliasPtr = (Alias *) Tcl_GetHashValue(hPtr);
-	Tcl_DeleteCommandFromToken(slaveInterp, oldAliasPtr->slaveCmd);
+	newToken = Tcl_NewStringObj("::",-1);
+	Tcl_AppendObjToObj(newToken, aliasPtr->namePtr);
+	Tcl_DecrRefCount(aliasPtr->namePtr);
+	aliasPtr->namePtr = newToken;
+	Tcl_IncrRefCount(aliasPtr->namePtr);
     }
 
     aliasPtr->aliasEntryPtr = hPtr;
@@ -1504,7 +1507,7 @@
     Tcl_SetHashValue(hPtr, (ClientData) targetPtr);
     aliasPtr->targetEntryPtr = hPtr;
 
-    Tcl_SetObjResult(interp, namePtr);
+    Tcl_SetObjResult(interp, aliasPtr->namePtr);
 
     Tcl_Release(slaveInterp);
     Tcl_Release(masterInterp);
