Index: generic/tclVar.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclVar.c,v
retrieving revision 1.189
diff -u -p -r1.189 tclVar.c
--- generic/tclVar.c	2 Feb 2010 16:12:00 -0000	1.189
+++ generic/tclVar.c	2 Feb 2010 17:31:05 -0000
@@ -4064,9 +4064,7 @@ ArrayUnsetCmd(
 	 */
 
 	if (varPtr2 == protectedVarPtr) {
-	    if (VarHashRefCount(varPtr2)-- == 1) {
-		CleanupVar(varPtr2, varPtr);
-	    }
+	    VarHashRefCount(protectedVarPtr)--;
 	}
 
 	/*
@@ -4094,12 +4092,13 @@ ArrayUnsetCmd(
 		 */
 
 		if (protectedVarPtr) {
-		    if (VarHashRefCount(protectedVarPtr)-- == 1) {
-			CleanupVar(protectedVarPtr, varPtr);
-		    }
+		    VarHashRefCount(protectedVarPtr);
+		    CleanupVar(protectedVarPtr, varPtr);
 		}
 		return TCL_ERROR;
 	    }
+	} else {
+	    CleanupVar(varPtr2, varPtr);
 	}
     }
     return TCL_OK;
