Index: generic/nsf.c =================================================================== diff -u -ra6e6e5de115f92c579b867bb88323a9916aec4d4 -r17ad6747e40c1724810371f92f0108b12c1d5284 --- generic/nsf.c (.../nsf.c) (revision a6e6e5de115f92c579b867bb88323a9916aec4d4) +++ generic/nsf.c (.../nsf.c) (revision 17ad6747e40c1724810371f92f0108b12c1d5284) @@ -22144,7 +22144,20 @@ * Check whether we have to call recreate (i.e. when the * object exists already). */ - newObject = GetObjectFromString(interp, nameString); + { + Tcl_Command cmd = NSFindCommand(interp, nameString); + if (cmd) { + newObject = NsfGetObjectFromCmdPtr(cmd); + if (newObject == NULL) { + /* + * We have a cmd, but no object. Don't allow to overwrite an ordinary + * cmd by an nsf object. + */ + result = NsfPrintError(interp, "cannot overwrite cmd %s; delete/rename it before overwriting", nameString); + goto create_method_exit; + } + } + } /*fprintf(stderr, "+++ createspecifiedName '%s', nameString '%s', newObject=%p ismeta(%s) %d, ismeta(%s) %d\n", specifiedName, nameString, newObject,