-                         
-                       SPI_SendByte(Write_Memory_Params.ProgrammingCommands[0]);
-                       SPI_SendByte(CurrentAddress >> 8);
-                       SPI_SendByte(CurrentAddress & 0xFF);
-                       SPI_SendByte(ByteToWrite);
-                       
+
+                       /* Check to see if we need to send a LOAD EXTENDED ADDRESS command to the target */
+                       if (MustLoadExtendedAddress)
+                       {
+                               ISPTarget_LoadExtendedAddress();
+                               MustLoadExtendedAddress = false;
+                       }
+
+                       ISPTarget_SendByte(Write_Memory_Params.ProgrammingCommands[0]);
+                       ISPTarget_SendByte(CurrentAddress >> 8);
+                       ISPTarget_SendByte(CurrentAddress & 0xFF);
+                       ISPTarget_SendByte(ByteToWrite);
+