diff -r 648685f8d5e9 Modules/_tkinter.c --- a/Modules/_tkinter.c Thu Sep 04 21:00:10 2014 +0200 +++ b/Modules/_tkinter.c Thu Sep 04 21:38:26 2014 +0200 @@ -912,15 +912,20 @@ AsObj(PyObject *value) "list is too long"); return NULL; } - argv = (Tcl_Obj **) ckalloc(((size_t)size) * sizeof(Tcl_Obj *)); - if(!argv) { - PyErr_NoMemory(); - return NULL; + if (size != 0) { + argv = (Tcl_Obj **) ckalloc(((size_t)size) * sizeof(Tcl_Obj *)); + if(!argv) { + PyErr_NoMemory(); + return NULL; + } + for (i = 0; i < size; i++) + argv[i] = AsObj(PySequence_Fast_GET_ITEM(value,i)); + result = Tcl_NewListObj(size, argv); + ckfree(FREECAST argv); } - for (i = 0; i < size; i++) - argv[i] = AsObj(PySequence_Fast_GET_ITEM(value,i)); - result = Tcl_NewListObj(size, argv); - ckfree(FREECAST argv); + else { + result = Tcl_NewListObj(0, NULL); + } return result; } else if (PyUnicode_Check(value)) {