Index: generic/xotcl.c =================================================================== diff -u -r6ed4ee1fa83082cba7852aa3aa681351dbe8eea8 -raeac917db741ab7500d7e976443ac551f191efcd --- generic/xotcl.c (.../xotcl.c) (revision 6ed4ee1fa83082cba7852aa3aa681351dbe8eea8) +++ generic/xotcl.c (.../xotcl.c) (revision aeac917db741ab7500d7e976443ac551f191efcd) @@ -6464,9 +6464,13 @@ ordinaryArg = ordinaryArgsDefv[i]; rc = Tcl_ListObjGetElements(interp, ordinaryArg, &defaultValueObjc, &defaultValueObjv); - if (rc == TCL_OK && !strcmp(arg, ObjStr(defaultValueObjv[0]))) { - return SetProcDefault(interp, var, defaultValueObjc == 2 ? - defaultValueObjv[1] : NULL); + /*fprintf(stderr, "arg='%s', *arg==0 %d, defaultValueObjc=%d\n", arg, *arg==0, defaultValueObjc);*/ + if (rc == TCL_OK) { + if (defaultValueObjc > 0 && !strcmp(arg, ObjStr(defaultValueObjv[0]))) { + return SetProcDefault(interp, var, defaultValueObjc == 2 ? defaultValueObjv[1] : NULL); + } else if (defaultValueObjc == 0 && *arg == 0) { + return SetProcDefault(interp, var, NULL); + } } } XOTclVarErrMsg(interp, "method '", procName, "' doesn't have an argument '",