diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c b/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
index 0f590c719e57e04afb9d96f30bf6ff726f4b9f4c..843bf5a7df9da14dc2a9c9c4197d716e929ae4d7 100644
--- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
+++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
@@ -152,9 +152,11 @@ void XPROGTarget_EnableTargetPDI(void)
 	DDRD |=  (1 << 5) | (1 << 3);
 	DDRD &= ~(1 << 2);
 	
-	/* Set DATA line high for at least 90ns to disable /RESET functionality */
+	/* Set DATA line high for at least 90ns to disable /RESET functionality (note: too long will enable it again,
+	 * so a fixed number of NOPs are used here */
 	PORTD |= (1 << 3);
-	_delay_ms(1);
+	asm volatile ("NOP"::);
+	asm volatile ("NOP"::);
 	
 	/* Set up the synchronous USART for XMEGA communications - 
 	   8 data bits, even parity, 2 stop bits */
@@ -166,9 +168,11 @@ void XPROGTarget_EnableTargetPDI(void)
 	BITBANG_PDIDATA_DDR  |= BITBANG_PDIDATA_MASK;
 	BITBANG_PDICLOCK_DDR |= BITBANG_PDICLOCK_MASK;
 	
-	/* Set DATA line high for at least 90ns to disable /RESET functionality */
+	/* Set DATA line high for at least 90ns to disable /RESET functionality (note: too long will enable it again,
+	 * so a fixed number of NOPs are used here */
 	BITBANG_PDIDATA_PORT |= BITBANG_PDIDATA_MASK;
-	_delay_ms(1);
+	asm volatile ("NOP"::);
+	asm volatile ("NOP"::);
 
 	/* Fire timer compare channel A ISR to manage the software USART */
 	OCR1A   = BITS_BETWEEN_USART_CLOCKS;