diff --git a/src/helper/command.c b/src/helper/command.c
index 868d0952ece6911ca18a69c20bab9737b714d98e..ef0afa2b56bca06e5b88e13ce4c5ca2c97b4ec2b 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -118,15 +118,10 @@ static void command_log_capture_finish(struct log_capture_state *state)
 static int command_retval_set(Jim_Interp *interp, int retval)
 {
 	int *return_retval = Jim_GetAssocData(interp, "retval");
-	if (retval == ERROR_COMMAND_CLOSE_CONNECTION) {
-		if (return_retval != NULL)
-			*return_retval = 0;
-		return JIM_EXIT;
-	} else {
-		if (return_retval != NULL)
-			*return_retval = retval;
-		return (retval == ERROR_OK) ? JIM_OK : JIM_ERR;
-	}
+	if (return_retval != NULL)
+		*return_retval = retval;
+
+	return (retval == ERROR_OK) ? JIM_OK : JIM_ERR;
 }
 
 extern struct command_context *global_cmd_ctx;
@@ -676,7 +671,8 @@ int command_run_line(struct command_context *context, char *line)
 		}
 		return retval;
 	} else if (retcode == JIM_EXIT) {
-		return ERROR_OK_EXIT;
+		/* ignore.
+		 * exit(Jim_GetExitCode(interp)); */
 	} else {
 		const char *result;
 		int reslen;
diff --git a/src/helper/log.h b/src/helper/log.h
index ad8d24795d434387d4e876a979f3c28701d5be30..e161a6ea2b00b66d1b36143ea9c711f946a18c2b 100644
--- a/src/helper/log.h
+++ b/src/helper/log.h
@@ -138,5 +138,5 @@ extern int debug_level;
  * make no assumptions about what went wrong and try to handle the problem.
  */
 #define ERROR_FAIL						(-4)
-#define ERROR_OK_EXIT					(-5)
+
 #endif	/* LOG_H */
diff --git a/src/openocd.c b/src/openocd.c
index d06e2c56e5258a09d09cad9f794794defaaf8a43..048ce8524809e319579a68f163cec12bdb829b0e 100644
--- a/src/openocd.c
+++ b/src/openocd.c
@@ -279,8 +279,6 @@ static int openocd_thread(int argc, char *argv[], struct command_context *cmd_ct
 		return EXIT_FAILURE;
 
 	ret = parse_config_file(cmd_ctx);
-	if (ret == ERROR_OK_EXIT)
-		return ERROR_OK;
 	if (ret != ERROR_OK)
 		return EXIT_FAILURE;