diff --git a/src/target/arm11_dbgtap.c b/src/target/arm11_dbgtap.c
index 1df791d3ffbb0f4fa934f03b23dd5b58810520b6..7a639fdee25a3612632532e077cfda170c0c6a78 100644
--- a/src/target/arm11_dbgtap.c
+++ b/src/target/arm11_dbgtap.c
@@ -183,7 +183,7 @@ void arm11_add_debug_SCAN_N(arm11_common_t * arm11, u8 chain, tap_state_t state)
 
 	jtag_execute_queue_noclear();
 
-	arm11_in_handler_SCAN_N(tmp); /* deprecated! invoke this from user code! */
+	arm11_in_handler_SCAN_N(tmp);
 }
 
 /** Write an instruction into the ITR register
diff --git a/src/target/arm920t.c b/src/target/arm920t.c
index 455ee8c500d2c94cd0fd920b080bc1f7658e1a70..d2ae9792e3058ea3a1aceabd5d044122e2c52ab5 100644
--- a/src/target/arm920t.c
+++ b/src/target/arm920t.c
@@ -113,51 +113,37 @@ int arm920t_read_cp15_physical(target_t *target, int reg_addr, u32 *value)
 	fields[0].tap = jtag_info->tap;
 	fields[0].num_bits = 1;
 	fields[0].out_value = &access_type_buf;
-	
 	fields[0].in_value = NULL;
-	
-	
 	fields[0].in_handler = NULL;
-	
 
 	fields[1].tap = jtag_info->tap;
 	fields[1].num_bits = 32;
 	fields[1].out_value = NULL;
-	
 	fields[1].in_value = NULL;
-	
-	
 	fields[1].in_handler = NULL;
-	
 
 	fields[2].tap = jtag_info->tap;
 	fields[2].num_bits = 6;
 	fields[2].out_value = &reg_addr_buf;
-	
 	fields[2].in_value = NULL;
-	
-	
 	fields[2].in_handler = NULL;
-	
 
 	fields[3].tap = jtag_info->tap;
 	fields[3].num_bits = 1;
 	fields[3].out_value = &nr_w_buf;
-	
 	fields[3].in_value = NULL;
-	
-	
 	fields[3].in_handler = NULL;
-	
 
 	jtag_add_dr_scan(4, fields, TAP_INVALID);
 
-	fields[1].in_handler_priv = value;
-	fields[1].in_handler = arm_jtag_buf_to_u32; /* deprecated! invoke this from user code! */
+	u8 tmp[4];
+	fields[1].in_value = tmp;
 
-	jtag_add_dr_scan(4, fields, TAP_INVALID);
+	jtag_add_dr_scan_now(4, fields, TAP_INVALID);
 
-#ifdef _DEBUG_INSTRUCTION_EXECUTION_
+	*value=le_to_h_u32(tmp);
+
+	#ifdef _DEBUG_INSTRUCTION_EXECUTION_
 	jtag_execute_queue();
 	LOG_DEBUG("addr: 0x%x value: %8.8x", reg_addr, *value);
 #endif
@@ -185,42 +171,42 @@ int arm920t_write_cp15_physical(target_t *target, int reg_addr, u32 value)
 	fields[0].tap = jtag_info->tap;
 	fields[0].num_bits = 1;
 	fields[0].out_value = &access_type_buf;
-	
+
 	fields[0].in_value = NULL;
-	
-	
+
+
 	fields[0].in_handler = NULL;
-	
+
 
 	fields[1].tap = jtag_info->tap;
 	fields[1].num_bits = 32;
 	fields[1].out_value = value_buf;
-	
+
 	fields[1].in_value = NULL;
-	
-	
+
+
 	fields[1].in_handler = NULL;
-	
+
 
 	fields[2].tap = jtag_info->tap;
 	fields[2].num_bits = 6;
 	fields[2].out_value = &reg_addr_buf;
-	
+
 	fields[2].in_value = NULL;
-	
-	
+
+
 	fields[2].in_handler = NULL;
-	
+
 
 	fields[3].tap = jtag_info->tap;
 	fields[3].num_bits = 1;
 	fields[3].out_value = &nr_w_buf;
-	
+
 	fields[3].in_value = NULL;
-	
-	
+
+
 	fields[3].in_handler = NULL;
-	
+
 
 	jtag_add_dr_scan(4, fields, TAP_INVALID);
 
@@ -252,42 +238,42 @@ int arm920t_execute_cp15(target_t *target, u32 cp15_opcode, u32 arm_opcode)
 	fields[0].tap = jtag_info->tap;
 	fields[0].num_bits = 1;
 	fields[0].out_value = &access_type_buf;
-	
+
 	fields[0].in_value = NULL;
-	
-	
+
+
 	fields[0].in_handler = NULL;
-	
+
 
 	fields[1].tap = jtag_info->tap;
 	fields[1].num_bits = 32;
 	fields[1].out_value = cp15_opcode_buf;
-	
+
 	fields[1].in_value = NULL;
-	
-	
+
+
 	fields[1].in_handler = NULL;
-	
+
 
 	fields[2].tap = jtag_info->tap;
 	fields[2].num_bits = 6;
 	fields[2].out_value = &reg_addr_buf;
-	
+
 	fields[2].in_value = NULL;
-	
-	
+
+
 	fields[2].in_handler = NULL;
-	
+
 
 	fields[3].tap = jtag_info->tap;
 	fields[3].num_bits = 1;
 	fields[3].out_value = &nr_w_buf;
-	
+
 	fields[3].in_value = NULL;
-	
-	
+
+
 	fields[3].in_handler = NULL;
-	
+
 
 	jtag_add_dr_scan(4, fields, TAP_INVALID);