Index: generic/xotcl.c =================================================================== diff -u -rf2b4c92ea2f921bf15fa3d55230c78f1b361cc6a -r458415a66f28b742de657628d4e4d6d27309c110 --- generic/xotcl.c (.../xotcl.c) (revision f2b4c92ea2f921bf15fa3d55230c78f1b361cc6a) +++ generic/xotcl.c (.../xotcl.c) (revision 458415a66f28b742de657628d4e4d6d27309c110) @@ -2418,8 +2418,9 @@ /*fprintf(stderr, "CallStackDoDestroy %p flags %.6x activation %d cmd %p\n", obj, obj->flags, obj->activationCount, obj->id);*/ obj->flags |= XOTCL_DURING_DELETE; - oid = obj->id; + /* oid might be freed already, we can't even use (((Command*)oid)->flags & CMD_IS_DELETED) */ + if (obj->teardown && oid) { /* PrimitiveDestroy() has to be before DeleteCommandFromToken(),