diff -ru tcl8.6/generic/tclInt.h tcl8.6-patched/generic/tclInt.h
--- tcl8.6/generic/tclInt.h	2014-03-25 08:32:03.000000000 +0100
+++ tcl8.6-patched/generic/tclInt.h	2014-03-25 08:29:44.000000000 +0100
@@ -2662,7 +2662,7 @@
 MODULE_SCOPE const Tcl_ObjType tclDoubleType;
 MODULE_SCOPE const Tcl_ObjType tclEndOffsetType;
 MODULE_SCOPE const Tcl_ObjType tclIntType;
-MODULE_SCOPE const Tcl_ObjType tclListType;
+MODULE_SCOPE Tcl_ObjType tclListType;
 MODULE_SCOPE const Tcl_ObjType tclDictType;
 MODULE_SCOPE const Tcl_ObjType tclProcBodyType;
 MODULE_SCOPE const Tcl_ObjType tclStringType;
diff -ru tcl8.6/generic/tclListObj.c tcl8.6-patched/generic/tclListObj.c
--- tcl8.6/generic/tclListObj.c	2014-03-04 20:14:03.000000000 +0100
+++ tcl8.6-patched/generic/tclListObj.c	2014-03-25 08:29:44.000000000 +0100
@@ -38,7 +38,7 @@
  * storage to avoid an auxiliary stack.
  */
 
-const Tcl_ObjType tclListType = {
+Tcl_ObjType tclListType = {
     "list",			/* name */
     FreeListInternalRep,	/* freeIntRepProc */
     DupListInternalRep,		/* dupIntRepProc */
@@ -470,7 +470,7 @@
 	    *objvPtr = NULL;
 	    return TCL_OK;
 	}
-	result = SetListFromAny(interp, listPtr);
+	result = Tcl_ConvertToType(interp, listPtr, &tclListType);
 	if (result != TCL_OK) {
 	    return result;
 	}
@@ -579,7 +579,7 @@
 	    Tcl_SetListObj(listPtr, 1, &objPtr);
 	    return TCL_OK;
 	}
-	result = SetListFromAny(interp, listPtr);
+	result = Tcl_ConvertToType(interp, listPtr, &tclListType);
 	if (result != TCL_OK) {
 	    return result;
 	}
@@ -743,7 +743,7 @@
 	    *objPtrPtr = NULL;
 	    return TCL_OK;
 	}
-	result = SetListFromAny(interp, listPtr);
+	result = Tcl_ConvertToType(interp, listPtr, &tclListType);
 	if (result != TCL_OK) {
 	    return result;
 	}
@@ -796,7 +796,7 @@
 	    *intPtr = 0;
 	    return TCL_OK;
 	}
-	result = SetListFromAny(interp, listPtr);
+	result = Tcl_ConvertToType(interp, listPtr, &tclListType);
 	if (result != TCL_OK) {
 	    return result;
 	}
@@ -869,7 +869,7 @@
 	    }
 	    Tcl_SetListObj(listPtr, objc, NULL);
 	} else {
-	    int result = SetListFromAny(interp, listPtr);
+	    int result = Tcl_ConvertToType(interp, listPtr, &tclListType);
 
 	    if (result != TCL_OK) {
 		return result;
@@ -1627,7 +1627,7 @@
 	    }
 	    return TCL_ERROR;
 	}
-	result = SetListFromAny(interp, listPtr);
+	result = Tcl_ConvertToType(interp, listPtr, &tclListType);
 	if (result != TCL_OK) {
 	    return result;
 	}
