diff --git a/src/target/mips32.c b/src/target/mips32.c
index 6ba433c38b2d4a498c323b63d124ce51705bc2d6..1315744cca3e86d4c9a142c578f1d6bad6de7003 100644
--- a/src/target/mips32.c
+++ b/src/target/mips32.c
@@ -268,7 +268,7 @@ int mips32_arch_state(struct target *target)
 	if (mips32->common_magic != MIPS32_COMMON_MAGIC)
 	{
 		LOG_ERROR("BUG: called for a non-MIPS32 target");
-		exit(-1);
+		return ERROR_FAIL;
 	}
 
 	LOG_USER("target halted due to %s, pc: 0x%8.8" PRIx32 "",
diff --git a/src/target/mips_m4k.c b/src/target/mips_m4k.c
index d1d34810d8368caf823ed4426f092ea7c3b628d9..864ede072a4453233cef1c54df190f6060fb4262 100644
--- a/src/target/mips_m4k.c
+++ b/src/target/mips_m4k.c
@@ -513,10 +513,9 @@ int mips_m4k_set_breakpoint(struct target *target, struct breakpoint *breakpoint
 			bp_num++;
 		if (bp_num >= mips32->num_inst_bpoints)
 		{
-			LOG_DEBUG("ERROR Can not find free FP Comparator(bpid: %d)",
+			LOG_ERROR("Can not find free FP Comparator(bpid: %d)",
 					  breakpoint->unique_id );
-			LOG_WARNING("ERROR Can not find free FP Comparator");
-			exit(-1);
+			return ERROR_FAIL;
 		}
 		breakpoint->set = bp_num + 1;
 		comparator_list[bp_num].used = 1;
@@ -724,9 +723,8 @@ int mips_m4k_set_watchpoint(struct target *target, struct watchpoint *watchpoint
 		wp_num++;
 	if (wp_num >= mips32->num_data_bpoints)
 	{
-		LOG_DEBUG("ERROR Can not find free FP Comparator");
-		LOG_WARNING("ERROR Can not find free FP Comparator");
-		exit(-1);
+		LOG_ERROR("Can not find free FP Comparator");
+		return ERROR_FAIL;
 	}
 
 	if (watchpoint->length != 4)