diff --git a/src/target/arm7tdmi.c b/src/target/arm7tdmi.c
index f4ba44ac132ea55091a04880bbd977a0d02c5584..3ede36cc9f645a882550f2c0c4542541d4556895 100644
--- a/src/target/arm7tdmi.c
+++ b/src/target/arm7tdmi.c
@@ -236,11 +236,15 @@ static int arm7tdmi_clock_data_in_endianness(struct arm_jtag *jtag_info,
 
 	fields[1].num_bits = 32;
 	fields[1].out_value = NULL;
-	jtag_alloc_in_value32(&fields[1]);
+	fields[1].in_value = in;
 
 	jtag_add_dr_scan(jtag_info->tap, 2, fields, TAP_DRPAUSE);
 
-	jtag_add_callback4(arm7endianness, (jtag_callback_data_t)in, (jtag_callback_data_t)size, (jtag_callback_data_t)be, (jtag_callback_data_t)fields[1].in_value);
+	jtag_add_callback4(arm7endianness,
+		(jtag_callback_data_t)in,
+		(jtag_callback_data_t)size,
+		(jtag_callback_data_t)be,
+		(jtag_callback_data_t)in);
 
 	jtag_add_runtest(0, TAP_DRPAUSE);
 
diff --git a/src/target/arm9tdmi.c b/src/target/arm9tdmi.c
index 5c2fd9d14e5acd67c2bd0f3a33a7f11968d333d5..dc18585c87adc105a01f7edece18070e3315757d 100644
--- a/src/target/arm9tdmi.c
+++ b/src/target/arm9tdmi.c
@@ -293,7 +293,7 @@ int arm9tdmi_clock_data_in_endianness(struct arm_jtag *jtag_info,
 
 	fields[0].num_bits = 32;
 	fields[0].out_value = NULL;
-	jtag_alloc_in_value32(&fields[0]);
+	fields[0].in_value = in;
 
 	fields[1].num_bits = 3;
 	fields[1].out_value = NULL;
@@ -305,7 +305,11 @@ int arm9tdmi_clock_data_in_endianness(struct arm_jtag *jtag_info,
 
 	jtag_add_dr_scan(jtag_info->tap, 3, fields, TAP_DRPAUSE);
 
-	jtag_add_callback4(arm9endianness, (jtag_callback_data_t)in, (jtag_callback_data_t)size, (jtag_callback_data_t)be, (jtag_callback_data_t)fields[0].in_value);
+	jtag_add_callback4(arm9endianness,
+		(jtag_callback_data_t)in,
+		(jtag_callback_data_t)size,
+		(jtag_callback_data_t)be,
+		(jtag_callback_data_t)in);
 
 	jtag_add_runtest(0, TAP_DRPAUSE);