Index: generic/xotcl.c =================================================================== diff -u -r704c3ae60e5e41c9b4e7788a4e78e280624304c1 -r548ea60d4d51c8713263f9a75fe75f5b1428c8cf --- generic/xotcl.c (.../xotcl.c) (revision 704c3ae60e5e41c9b4e7788a4e78e280624304c1) +++ generic/xotcl.c (.../xotcl.c) (revision 548ea60d4d51c8713263f9a75fe75f5b1428c8cf) @@ -13326,8 +13326,13 @@ ObjStr(nameObj), objc+1);*/ /* call recreate --> initialization */ - result = callMethod((ClientData) cl, interp, - XOTclGlobalObjects[XOTE_RECREATE], objc+1, nobjv+1, XOTCL_CM_NO_PROTECT); + if (CanInvokeDirectly(interp, &cl->object, XOTE_RECREATE)) { + result = XOTclCRecreateMethod(interp, cl, newObject->cmdName, objc, nobjv); + } else { + result = callMethod((ClientData) cl, interp, + XOTclGlobalObjects[XOTE_RECREATE], objc+1, nobjv+1, XOTCL_CM_NO_PROTECT); + } + if (result != TCL_OK) goto create_method_exit;