diff --git a/src/target/arm7_9_common.c b/src/target/arm7_9_common.c
index d7684c5e2c0fdc3126ab6b035a79337babd6f5fc..4fd97c5c4a319660222b76c356706076009fa2d3 100644
--- a/src/target/arm7_9_common.c
+++ b/src/target/arm7_9_common.c
@@ -2016,9 +2016,11 @@ int arm7_9_read_memory(struct target_s *target, u32 address, u32 size, u32 count
 				 * from a sufficiently high clock (32 kHz is usually too slow)
 				 */
 				if (arm7_9->fast_memory_access)
-					arm7_9_execute_fast_sys_speed(target);
+					retval = arm7_9_execute_fast_sys_speed(target);
 				else
-					arm7_9_execute_sys_speed(target);
+					retval = arm7_9_execute_sys_speed(target);
+				if (retval != ERROR_OK)
+					return retval;
 
 				arm7_9->read_core_regs_target_buffer(target, reg_list, buffer, 4);
 
diff --git a/src/target/arm920t.c b/src/target/arm920t.c
index 5f499d64daaff3b7c9de71b5639c9b662e4bbf0d..b22a8c2bad384d4e166ed4c9b28918bf534d99d7 100644
--- a/src/target/arm920t.c
+++ b/src/target/arm920t.c
@@ -293,7 +293,9 @@ int arm920t_execute_cp15(target_t *target, u32 cp15_opcode, u32 arm_opcode)
 
 	arm9tdmi_clock_out(jtag_info, arm_opcode, 0, NULL, 0);
 	arm9tdmi_clock_out(jtag_info, ARMV4_5_NOP, 0, NULL, 1);
-	arm7_9_execute_sys_speed(target);
+	retval = arm7_9_execute_sys_speed(target);
+	if (retval != ERROR_OK)
+		return retval;
 	
 	if ((retval = jtag_execute_queue()) != ERROR_OK)
 	{