Index: generic/tclNamesp.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclNamesp.c,v
retrieving revision 1.125
diff -u -r1.125 tclNamesp.c
--- generic/tclNamesp.c	8 Feb 2007 18:43:40 -0000	1.125
+++ generic/tclNamesp.c	27 Feb 2007 15:32:13 -0000
@@ -6308,8 +6308,9 @@
     {
 	Interp *iPtr = (Interp *) interp;
 	int isRootEnsemble = (iPtr->ensembleRewrite.sourceObjs == NULL);
+	Tcl_Obj *copyObj = TclListObjCopy(NULL, prefixObj);
 
-	Tcl_ListObjGetElements(NULL, prefixObj, &prefixObjc, &prefixObjv);
+	Tcl_ListObjGetElements(NULL, copyObj, &prefixObjc, &prefixObjv);
 	if (isRootEnsemble) {
 	    iPtr->ensembleRewrite.sourceObjs = objv;
 	    iPtr->ensembleRewrite.numRemovedObjs = 2;
@@ -6329,6 +6330,7 @@
 	memcpy(tempObjv+prefixObjc, objv+2, sizeof(Tcl_Obj *) * (objc-2));
 	result = Tcl_EvalObjv(interp, objc-2+prefixObjc, tempObjv,
 		TCL_EVAL_INVOKE);
+	Tcl_DecrRefCount(copyObj);
 	Tcl_DecrRefCount(prefixObj);
 	TclStackFree(interp);
 	if (isRootEnsemble) {
