diff --git a/Projects/AVRISP/AVRISP.txt b/Projects/AVRISP/AVRISP.txt
index c533af725139dff6b762825f58099a67379d925b..bed0a7a627143239bec16df05d65b6a0a5bc777b 100644
--- a/Projects/AVRISP/AVRISP.txt
+++ b/Projects/AVRISP/AVRISP.txt
@@ -61,7 +61,11 @@
  *  set to an appropriate ADC channel number in the project makefile for VTARGET detection to operate correctly. On models
  *  without an ADC converter, VTARGET will report at a fixed 5V level.
  *
- *  Connections to the device are simple for SPI programming:
+ *  When compiled for the XPLAIN board target, this will automatically configure itself for the correct connections to the
+ *  XPLAIN's XMEGA AVR, and will enable only PDI programming support.
+ *
+ *
+ *  Connections to the device for SPI programming (when enabled):
  *
  *  <table>
  *   <tr>
@@ -105,7 +109,7 @@
  *  <b><sup>2</sup></b> <i>See \ref SSec_Options section</i>
  *
  *
- *  Connections to the device are simple for SPI programming:
+ *  Connections to the device for PDI programming (when enabled):
  *
  *  <table>
  *   <tr>
@@ -158,19 +162,20 @@
  *   <tr>
  *    <td>RESET_LINE_PORT</td>
  *    <td>Makefile CDEFS</td>
- *    <td>PORT register for the programmer's target RESET line.</td>
+ *    <td>PORT register for the programmer's target RESET line. <i>Ignored when compiled for the XPLAIN board.</i></td>
  *   </tr>
  *   <tr>
  *    <td>RESET_LINE_DDR</td>
  *    <td>Makefile CDEFS</td>
- *    <td>DDR register for the programmer's target RESET line.</td>
+ *    <td>DDR register for the programmer's target RESET line. <i>Ignored when compiled for the XPLAIN board.</i></td>
  *   </tr>
  *   <tr>
  *    <td>RESET_LINE_MASK</td>
  *    <td>Makefile CDEFS</td>
  *    <td>Mask for the programmer's target RESET line on the chosen port. <b>Must not be the AVR's /SS pin</b>, as the
  *        target pins are tri-stated when not in use, and low signals on the /SS pin will force SPI slave mode when the
- *        pin is configured as an input. When in PDI programming mode, this is the target clock pin.</td>
+ *        pin is configured as an input. When in PDI programming mode, this is the target clock pin.
+ *        <i>Ignored when compiled for the XPLAIN board.</i></td>
  *   </tr>
  *   <tr>
  *    <td>VTARGET_ADC_CHANNEL</td>
@@ -180,12 +185,12 @@
  *   <tr>
  *    <td>ENABLE_SPI_PROTOCOL</td>
  *    <td>Makefile CDEFS</td>
- *    <td>Define to enable SPI programming protocol support.</td>  
+ *    <td>Define to enable SPI programming protocol support. <i>Ignored when compiled for the XPLAIN board.</i></td>  
  *   </tr>
  *   <tr>
  *    <td>ENABLE_XPROG_PROTOCOL</td>
  *    <td>Makefile CDEFS</td>
- *    <td>Define to enable XMEGA PDI programming protocol support.</td>  
+ *    <td>Define to enable XMEGA PDI programming protocol support. <i>Ignored when compiled for the XPLAIN board.</i></td>  
  *   </tr>
  *  </table>
  */
diff --git a/Projects/AVRISP/Lib/ISPProtocol.h b/Projects/AVRISP/Lib/ISPProtocol.h
index 5a91f59e39c3f482489e1d6c04922fe4d75693ab..5a144c4f72fd2211823b188db44c68177a73694a 100644
--- a/Projects/AVRISP/Lib/ISPProtocol.h
+++ b/Projects/AVRISP/Lib/ISPProtocol.h
@@ -40,6 +40,12 @@
 		#include <avr/io.h>
 		
 		#include "V2Protocol.h"
+		
+	/* Preprocessor Checks: */
+		#if BOARD == BOARD_XPLAIN
+			#undef  ENABLE_SPI_PROTOCOL
+			#define ENABLE_PDI_PROTOCOL
+		#endif
 
 	/* Macros: */
 		/** Mask for the reading or writing of the high byte in a FLASH word when issuing a low-level programming command */
diff --git a/Projects/AVRISP/Lib/ISPTarget.h b/Projects/AVRISP/Lib/ISPTarget.h
index 121d7893fe9b2121fd4d27ff5d775b533ad0d33d..4c4b891d16e127be9d37803df585f04bf22ec6be 100644
--- a/Projects/AVRISP/Lib/ISPTarget.h
+++ b/Projects/AVRISP/Lib/ISPTarget.h
@@ -47,6 +47,12 @@
 		#include "V2ProtocolConstants.h"
 		#include "V2ProtocolParams.h"
 
+	/* Preprocessor Checks: */
+		#if BOARD == BOARD_XPLAIN
+			#undef  ENABLE_SPI_PROTOCOL
+			#define ENABLE_PDI_PROTOCOL
+		#endif
+
 	/* Macros: */
 		/** Total number of allowable ISP programming speeds supported by the device */
 		#define TOTAL_ISP_PROGRAMMING_SPEEDS  7
diff --git a/Projects/AVRISP/Lib/PDIProtocol.h b/Projects/AVRISP/Lib/PDIProtocol.h
index 406ba273221249096480474a3cdd82c637790ec8..6ac3eb209bd757979875920383376b0066270f72 100644
--- a/Projects/AVRISP/Lib/PDIProtocol.h
+++ b/Projects/AVRISP/Lib/PDIProtocol.h
@@ -43,6 +43,12 @@
 		#include "V2Protocol.h"
 		#include "PDITarget.h"
 
+	/* Preprocessor Checks: */
+		#if BOARD == BOARD_XPLAIN
+			#undef  ENABLE_SPI_PROTOCOL
+			#define ENABLE_PDI_PROTOCOL
+		#endif
+
 	/* Macros: */
 		#define XPRG_CMD_ENTER_PROGMODE             0x01
 		#define XPRG_CMD_LEAVE_PROGMODE             0x02
diff --git a/Projects/AVRISP/Lib/PDITarget.h b/Projects/AVRISP/Lib/PDITarget.h
index 55a1a95622dac978a7cd92c25dd122d3ad421480..f2281fe11ba669a7db46379a3c50505cc6816ad8 100644
--- a/Projects/AVRISP/Lib/PDITarget.h
+++ b/Projects/AVRISP/Lib/PDITarget.h
@@ -42,16 +42,33 @@
 		
 		#include <LUFA/Common/Common.h>
 	
+	/* Preprocessor Checks: */
+		#if BOARD == BOARD_XPLAIN
+			#undef  ENABLE_SPI_PROTOCOL
+			#define ENABLE_PDI_PROTOCOL
+		#endif
+
 	/* Defines: */
-		#define PDIDATA_LINE_PORT     PORTB
-		#define PDIDATA_LINE_DDR      DDRB
-		#define PDIDATA_LINE_PIN      PINB
-		#define PDIDATA_LINE_MASK     (1 << 2)
+		#if BOARD == BOARD_XPLAIN
+			#define PDIDATA_LINE_PORT     PORTD
+			#define PDIDATA_LINE_DDR      DDRD
+			#define PDIDATA_LINE_PIN      PIND
+			#define PDIDATA_LINE_MASK     (1 << 2)
+			
+			#define PDICLOCK_LINE_PORT    PORTD
+			#define PDICLOCK_LINE_DDR     DDRD
+			#define PDICLOCK_LINE_MASK    (1 << 5)
+		#else
+			#define PDIDATA_LINE_PORT     PORTB
+			#define PDIDATA_LINE_DDR      DDRB
+			#define PDIDATA_LINE_PIN      PINB
+			#define PDIDATA_LINE_MASK     (1 << 2)
+			
+			#define PDICLOCK_LINE_PORT    RESET_LINE_PORT
+			#define PDICLOCK_LINE_DDR     RESET_LINE_DDR
+			#define PDICLOCK_LINE_MASK    RESET_LINE_MASK
+		#endif
 		
-		#define PDICLOCK_LINE_PORT    RESET_LINE_PORT
-		#define PDICLOCK_LINE_DDR     RESET_LINE_DDR
-		#define PDICLOCK_LINE_MASK    RESET_LINE_MASK
-
 		#define PDI_CMD_LDS           0x00
 		#define PDI_CMD_LD            0x20
 		#define PDI_CMD_STS           0x40
diff --git a/Projects/AVRISP/Lib/V2Protocol.h b/Projects/AVRISP/Lib/V2Protocol.h
index 7a181e32bef500cf390c16a0b1d27534b62e3df4..f65a57c06a7fac39d61031b8ae1bdf39bddf1b08 100644
--- a/Projects/AVRISP/Lib/V2Protocol.h
+++ b/Projects/AVRISP/Lib/V2Protocol.h
@@ -45,6 +45,12 @@
 		#include "V2ProtocolParams.h"
 		#include "ISPProtocol.h"
 		#include "PDIProtocol.h"
+
+	/* Preprocessor Checks: */
+		#if BOARD == BOARD_XPLAIN
+			#undef  ENABLE_SPI_PROTOCOL
+			#define ENABLE_PDI_PROTOCOL
+		#endif
 
 	/* Macros: */
 		/** Programmer ID string, returned to the host during the CMD_SIGN_ON command processing */