Index: generic/xotcl.c =================================================================== diff -u -r127bec56f327ac269b4dc22f61f9254d0bd8f9b5 -r89fec6ccb2d935530a2ab141440ca343deda3338 --- generic/xotcl.c (.../xotcl.c) (revision 127bec56f327ac269b4dc22f61f9254d0bd8f9b5) +++ generic/xotcl.c (.../xotcl.c) (revision 89fec6ccb2d935530a2ab141440ca343deda3338) @@ -6361,8 +6361,11 @@ paramPtr->flags |= XOTCL_ARG_RELATION; /*paramPtr->type = "tclobj";*/ } else if (length >= 6 && strncmp(option, "type=", 5) == 0) { - if (paramPtr->converterArg) - return XOTclVarErrMsg(interp, "Converter arg specified twice", (char *) NULL); + if (paramPtr->converter != NULL && + paramPtr->converter != convertToObject && + paramPtr->converter != convertToClass) + return XOTclVarErrMsg(interp, "option type= only allowed for object or class", (char *) NULL); + paramPtr->converter = NULL; result = ParamOptionSetConverter(interp, paramPtr, option, convertToObjectOfType); paramPtr->converterArg = Tcl_NewStringObj(option+5, length-5); INCR_REF_COUNT(paramPtr->converterArg);