diff --git a/minichlink/minichlink.c b/minichlink/minichlink.c
index cf3f32542a3f32cbfbc33f11f635f6329b458992..6504266362017845a2a87b38add74ec23990978f 100644
--- a/minichlink/minichlink.c
+++ b/minichlink/minichlink.c
@@ -1629,8 +1629,9 @@ static int DefaultHaltMode( void * dev, int mode )
 	case HALT_MODE_REBOOT:
 		MCF.WriteReg32( dev, DMCONTROL, 0x80000001 ); // Make the debug module work properly.
 		MCF.WriteReg32( dev, DMCONTROL, 0x80000001 ); // Initiate a halt request.
-		MCF.WriteReg32( dev, DMCONTROL, 0x80000003 ); // Reboot.
-		MCF.WriteReg32( dev, DMCONTROL, 0x40000001 ); // resumereq
+		MCF.WriteReg32( dev, DMCONTROL, 0x00000001 ); // Clear haltreq
+		MCF.WriteReg32( dev, DMCONTROL, 0x00000003 ); // Reboot.
+		MCF.WriteReg32( dev, DMCONTROL, 0x10000001 ); // resumereq
 		MCF.FlushLLCommands( dev );
 		break;
 	case HALT_MODE_RESUME:
diff --git a/minichlink/minichlink.exe b/minichlink/minichlink.exe
index df60e922ad7b48584993e0b6c5ce86de66bc14f6..d3f58bd70d38fef201a77600803f9cf683aee493 100644
Binary files a/minichlink/minichlink.exe and b/minichlink/minichlink.exe differ
diff --git a/minichlink/pgm-wch-linke.c b/minichlink/pgm-wch-linke.c
index fcfb6539dada691da2ac6913f59e6c1babb63212..3f6b8259f72878050b34934a24f66f5ddea780c4 100644
--- a/minichlink/pgm-wch-linke.c
+++ b/minichlink/pgm-wch-linke.c
@@ -161,6 +161,8 @@ static inline libusb_device_handle * wch_link_base_setup( int inhibit_startup )
 // Thanks, CW2 for pointing this out.  See DMI_OP for more info.
 int LEWriteReg32( void * dev, uint8_t reg_7_bit, uint32_t command )
 {
+	fprintf( stderr, "LEWriteReg32: %02x %08x\n", reg_7_bit, command );
+
 	libusb_device_handle * devh = ((struct LinkEProgrammerStruct*)dev)->devh;
 
 	const uint8_t iOP = 2; // op 2 = write
@@ -186,6 +188,14 @@ int LEWriteReg32( void * dev, uint8_t reg_7_bit, uint32_t command )
 		}
 		fprintf( stderr, "\n" );
 	}
+
+	fprintf( stderr, "Response: %d : ", resplen );
+	int i;
+	for( i = 0; i < resplen; i++ )
+	{
+		fprintf( stderr, "%02x ", resp[i] );
+	}
+	fprintf( stderr, "\n" );
 	return 0;
 }