This procedure worked for me in the end. t_find and t_replace are strings. procedure(sge_replaceProbeNode(t_find t_replace) prog((cv win selObjs probes updated cdf p oldVal newVal) ; Validate that both arguments are strings unless(stringp(t_find) error(“sge_replaceProbeNode: argument ‘find’ must be a string, got: %L” t_find) ) unless(stringp(t_replace) error(“sge_replaceProbeNode: argument ‘replace’ must be a string, got: %L” t_replace) ) probes = list() updated = list() win = hiGetCurrentWindow() unless(win error(“sge_replaceProbeNode: No active schematic window found.”) ) cv = geGetEditCellV