diff --git a/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c b/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c
index 102867933e8ef09fcc5bd8127d668d789df5de2c..e300dd96036f184e18c94715d2d5580552aafe3c 100644
--- a/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c
+++ b/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c
@@ -291,7 +291,8 @@ void Bluetooth_PacketReceived(void* Data, uint16_t DataLen, Bluetooth_Channel_t*
 			break;
 		default:
 			/* Unknown Protocol packet */
-			printf_P(PSTR("Unknown Packet Received (Channel 0x%04X, PSM: 0x%02X):\r\n"), Channel->LocalNumber, Channel->PSM);			
+			printf_P(PSTR("Unknown Packet Received (Channel 0x%04X, PSM: 0x%02X, Len: 0x%04X):\r\n"),
+			              Channel->LocalNumber, Channel->PSM, DataLen);			
 			break;
 	}
 }
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c
index ba5170127f9ef4d94fafc0d7427dd4e5d368024b..818caac754e3bdefb7fa94b8e9ff066ea95943e1 100644
--- a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c
+++ b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c
@@ -32,6 +32,7 @@
 	TODO: Make SendPacket respect receiver's MTU
 	TODO: Make ReceivePacket stitch together MTU fragments (?)
 	TODO: Add channel opened/closed callbacks
+	TODO: Figure out why delay is needed in connection for services
  */
 
 #define  INCLUDE_FROM_BLUETOOTH_ACLPACKETS_C
@@ -363,10 +364,12 @@ static inline void Bluetooth_Signal_ConnectionReq(const BT_Signal_Header_t* cons
 
 	Pipe_ClearIN();
 	Pipe_Freeze();
-
+	
 	BT_ACL_DEBUG(1, "<< L2CAP Connection Request");
 	BT_ACL_DEBUG(2, "-- PSM: 0x%04X", ConnectionRequest.PSM);
 	BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ConnectionRequest.SourceChannel);
+
+	_delay_ms(15); // TODO - Determine why this is needed
 	
 	/* Try to retrieve the existing channel's information structure if it exists */
 	Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConnectionRequest.SourceChannel, CHANNEL_SEARCH_REMOTENUMBER);
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.c b/Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.c
index cf326732568f49aa7386291e2830a88012d53956..a06ebfede4731da91ea7d064b1e1305632a531b6 100644
--- a/Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.c
+++ b/Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.c
@@ -56,15 +56,15 @@ const struct
 
 const struct
 {
-	uint8_t Header;
-	uint8_t Size;
+	uint8_t               Header;
+	uint8_t               Size;
 
-	ItemProtocol_t    L2CAP;
-	ItemProtocolPSM_t RFCOMM;
+	ItemProtocol_t        L2CAP;
+	ItemProtocolChannel_t RFCOMM;
 } PROGMEM SerialPort_Attribute_ProtocolDescriptor =
 	{
 		(SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),
-		(sizeof(ItemProtocol_t) + sizeof(ItemProtocolPSM_t)),
+		(sizeof(ItemProtocol_t) + sizeof(ItemProtocolChannel_t)),
 		{
 			(SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),
 			sizeof(ItemUUID_t),
@@ -74,10 +74,10 @@ const struct
 		},
 		{
 			(SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),
-			(sizeof(ItemUUID_t) + sizeof(Item16Bit_t)),
+			(sizeof(ItemUUID_t) + sizeof(Item8Bit_t)),
 			{
 				{(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), RFCOMM_UUID},
-				{(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), SWAPENDIAN_16(CHANNEL_PSM_RFCOMM)},
+				{(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_8Bit), 0x03},
 			},
 		},
 	};
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.h b/Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.h
index 1cfc2b2c0be77087e6c16b6517c80b2da6d101b4..7e33638dbb186125e2a1d875b38ca98363e5268c 100644
--- a/Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.h
+++ b/Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.h
@@ -145,20 +145,20 @@
 			} Protocol;
 		} ItemProtocol_t;
 
-		/** Structure for a list of Data Elements Sequences containing UUID Data Elements and 16-bit PSM values, for service
+		/** Structure for a list of Data Elements Sequences containing UUID Data Elements and 8-bit channel values, for service
 		 *  attributes requiring extended protocol lists.
 		 */
 		typedef struct
 		{
-			uint8_t         Header; /**< Data Element header, should be (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit) */
-			uint8_t         Size; /**< Size of the inner Data Element sequence */
+			uint8_t        Header; /**< Data Element header, should be (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit) */
+			uint8_t        Size; /**< Size of the inner Data Element sequence */
 			
 			struct
 			{
-				ItemUUID_t  UUID; /**< UUID to store in the protocol list Data Element sequence */
-				Item16Bit_t PSM; /**< PSM that is to be used to access the service on created channels */
+				ItemUUID_t UUID; /**< UUID to store in the protocol list Data Element sequence */
+				Item8Bit_t Channel; /**< Channel that is to be used to access the service */
 			} Protocol;
-		} ItemProtocolPSM_t;
+		} ItemProtocolChannel_t;
 		
 		/** Structure for a list of Data Elements containing language encodings, including the language ID, Encoding ID and
 		 *  Attribute base offset.
@@ -172,5 +172,6 @@
 		
 	/* External Variables: */
 		extern const ServiceAttributeTable_t SerialPort_Attribute_Table[];
+		extern const ServiceAttributeTable_t PnP_Attribute_Table[];
 		
 #endif