diff --git a/src/helper/command.c b/src/helper/command.c
index 7dc62dd554f95a4eb229b13bfe21a8c9b1fa166e..7ce7c2245d94768065f4d63470a5f932ef34cdc5 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -209,7 +209,7 @@ command_t* register_command(command_context_t *context, command_t *parent, char
 	free((void *)full_name);
 	
 	/* we now need to add an overrideable proc */
-	const char *override_name=alloc_printf("proc %s%s%s {args} {eval \"ocd_%s%s%s $args\";return \"\"}", t1, t2, t3, t1, t2, t3);
+	const char *override_name=alloc_printf("proc %s%s%s {args} {if {[catch {eval \"ocd_%s%s%s $args\"}]==0} {return \"\"} else { return -code error }", t1, t2, t3, t1, t2, t3);
 	Jim_Eval(interp, override_name);	
 	free((void *)override_name);