diff --git a/Demos/Device/ClassDriver/AudioInput/AudioInput.c b/Demos/Device/ClassDriver/AudioInput/AudioInput.c
index dd0028a55836c29652b1c0e9b648f6b4efcbe136..32caffcce9b6a900faa3411b164b85fecfd523cf 100644
--- a/Demos/Device/ClassDriver/AudioInput/AudioInput.c
+++ b/Demos/Device/ClassDriver/AudioInput/AudioInput.c
@@ -98,6 +98,7 @@ void ProcessNextSample(void)
 	/* Check if the sample reload timer period has elapsed, and that the USB bus is ready for a new sample */
 	if ((TIFR0 & (1 << OCF0A)) && Audio_Device_IsReadyForNextSample(&Microphone_Audio_Interface))
 	{
+		/* Clear the sample reload timer compare flag, ready for the next interval */
 		TIFR0 |= (1 << OCF0A);
 
 		/* Audio sample is ADC value scaled to fit the entire range */
diff --git a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c
index 622e423c6af6a661afef848dd0afd5178d246df8..9d2232ccb33e3b189d3ec163d30e0bb8acc412ef 100644
--- a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c
+++ b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c
@@ -93,7 +93,7 @@ void ProcessNextSample(void)
 	/* Check if the sample reload timer period has elapsed, and that the USB bus is ready for a new sample */
 	if ((TIFR0 & (1 << OCF0A)) && Audio_Device_IsSampleReceived(&Speaker_Audio_Interface))
 	{
-		/* Clear the sample reload timer */
+		/* Clear the sample reload timer compare flag, ready for the next interval */
 		TIFR0 |= (1 << OCF0A);
 
 		/* Retrieve the signed 16-bit left and right audio samples, convert to 8-bit */
diff --git a/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c b/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c
index 67850fc570a6e12518d652fdaf444246f0381815..589faebcad7b3e91dfd39f58863f30aa630b337a 100644
--- a/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c
+++ b/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c
@@ -171,7 +171,7 @@ void PrintIncomingPackets(void)
 		printf_P(PSTR("***PACKET (Size %d)***\r\n"), PacketLength);
 	
 		for (uint16_t i = 0; i < PacketLength; i++)
-		  printf("%02x ", PacketBuffer[i]);
+		  printf("0x%02x ", PacketBuffer[i]);
 
 		printf_P(PSTR("\r\n\r\n"));
 		
diff --git a/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c b/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c
index 1e75f477f0bc2e97f3b2c7e45fcc824d6b6344dd..b7955f6ef66f17de0eb52510fad689e18f2f863f 100644
--- a/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c
+++ b/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c
@@ -245,6 +245,8 @@ void Bluetooth_ConnectionComplete(void)
 	         Bluetooth_Connection.RemoteAddress[5], Bluetooth_Connection.RemoteAddress[4],
 	         Bluetooth_Connection.RemoteAddress[3], Bluetooth_Connection.RemoteAddress[2],
 	         Bluetooth_Connection.RemoteAddress[1], Bluetooth_Connection.RemoteAddress[0]);
+
+	LEDs_SetAllLEDs(LEDMASK_USB_BUSY);
 }
 
 /** Bluetooth stack callback event for a completed Bluetooth disconnection. When this callback is made,
@@ -258,6 +260,8 @@ void Bluetooth_DisconnectionComplete(void)
 	         Bluetooth_Connection.RemoteAddress[5], Bluetooth_Connection.RemoteAddress[4],
 	         Bluetooth_Connection.RemoteAddress[3], Bluetooth_Connection.RemoteAddress[2],
 	         Bluetooth_Connection.RemoteAddress[1], Bluetooth_Connection.RemoteAddress[0]);
+
+	LEDs_SetAllLEDs(LEDMASK_USB_READY);
 }
 
 /** Bluetooth stack callback event for a Bluetooth ACL Channel connection request. When is callback fires,
diff --git a/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.h b/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.h
index ce7d1f50082a268bbcda8b8295f99ffbe35b3db1..b628f8b8981fba35c6d94d4c38513153dc630ce5 100644
--- a/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.h
+++ b/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.h
@@ -70,6 +70,9 @@
 		/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
 		#define LEDMASK_USB_ERROR        (LEDS_LED1 | LEDS_LED3)
 
+		/** LED mask for the library LED driver, to indicate that the USB interface is busy. */
+		#define LEDMASK_USB_BUSY          LEDS_LED2
+
 	/* Task Definitions: */
 		void Bluetooth_Host_Task(void);
 		
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.c b/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.c
index 46cc182ecab707d9f3e707bd9b9ad6ad0487712b..75fe17b08717071acb994f48fbe6eb753ae2374f 100644
--- a/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.c
+++ b/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.c
@@ -73,6 +73,7 @@ void RFCOMM_ProcessPacket(void* Data, Bluetooth_Channel_t* const Channel)
 	const uint8_t*         FrameData    = (const uint8_t*)Data + sizeof(RFCOMM_Header_t);
 	uint16_t               FrameDataLen = RFCOMM_GetFrameDataLength(FrameData);
 
+	/* Adjust the frame data pointer to skip over the variable size field */
 	FrameData += (FrameDataLen < 128) ? 1 : 2;
 	
 	/* Decode the RFCOMM frame type from the header */
@@ -192,6 +193,8 @@ static void RFCOMM_ProcessControlCommand(const RFCOMM_Command_t* CommandHeader,
 
 			RFCOMM_SendFrame(RFCOMM_CONTROL_DLCI, false, RFCOMM_Frame_UIH, sizeof(RFCOMM_Command_t), &Response, Channel);			
 			break;
+		default:
+			BT_RFCOMM_DEBUG(1, "<< Unknown Command");			
 	}
 }
 
@@ -242,11 +245,10 @@ static void RFCOMM_SendFrame(const uint8_t DLCI, const bool CommandResponse, con
 
 static uint8_t RFCOMM_GetFCSValue(const void* FrameStart, uint8_t Length)
 {
-	const uint8_t* CurrPos = FrameStart;
-	uint8_t        FCS     = 0xFF;
+	uint8_t FCS = 0xFF;
 	
 	for (uint8_t i = 0; i < Length; i++)
-	  FCS = pgm_read_byte(&CRC8_Table[FCS ^ *(CurrPos++)]);
+	  FCS = pgm_read_byte(&CRC8_Table[FCS ^ ((uint8_t*)FrameStart)[i]]);
 
 	return ~FCS;
 }
diff --git a/Demos/Host/LowLevel/RNDISEthernetHost/RNDISEthernetHost.c b/Demos/Host/LowLevel/RNDISEthernetHost/RNDISEthernetHost.c
index 5628677d6626d7dcff8f1d90c1faaf37a30023b1..1d18f11e6489184710e2a96918c625c23f68951a 100644
--- a/Demos/Host/LowLevel/RNDISEthernetHost/RNDISEthernetHost.c
+++ b/Demos/Host/LowLevel/RNDISEthernetHost/RNDISEthernetHost.c
@@ -155,7 +155,7 @@ void PrintIncomingPackets(void)
 		Pipe_Read_Stream_LE(&PacketBuffer, PacketLength);
 		
 		for (uint16_t i = 0; i < PacketLength; i++)
-		  printf("%02x ", PacketBuffer[i]);
+		  printf("0x%02x ", PacketBuffer[i]);
 	}
 	
 	Pipe_ClearIN();