diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c
index 45fad7bd784116c47283df874ef2930eba741f35..449d57fb2a7e4b6be0a9ddb60ff32a4197d2a7cc 100644
--- a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c
+++ b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c
@@ -141,6 +141,17 @@ static void Bluetooth_ProcessACLPackets(void)
 			case BT_SIGNAL_INFORMATION_REQUEST:
 				Bluetooth_Signal_InformationReq(&ACLPacketHeader, &DataHeader, &SignalCommandHeader);
 				break;
+			case BT_SIGNAL_COMMAND_REJECT:
+				BT_ACL_DEBUG(1, "<< Command Reject", NULL);
+				
+				uint16_t RejectReason;
+				Pipe_Read_Stream_LE(&RejectReason, sizeof(RejectReason));
+				Pipe_Discard_Stream(ACLPacketHeader.DataLength - sizeof(RejectReason));
+				Pipe_ClearIN();
+				Pipe_Freeze();				
+			
+				BT_ACL_DEBUG(2, "-- Reason: %d", RejectReason);
+				break;
 			default:
 				BT_ACL_DEBUG(1, "<< Unknown Signaling Command 0x%02X", SignalCommandHeader.Code);
 	
@@ -315,9 +326,10 @@ static inline void Bluetooth_Signal_ConnectionReq(BT_ACL_Header_t*        ACLPac
 	ResponsePacket.SignalCommandHeader.Code              = BT_SIGNAL_CONNECTION_RESPONSE;
 	ResponsePacket.SignalCommandHeader.Identifier        = SignalCommandHeader->Identifier;
 	ResponsePacket.SignalCommandHeader.Length            = sizeof(ResponsePacket.ConnectionResponse);
-	ResponsePacket.ConnectionResponse.Result             = (ChannelData == NULL) ? BT_CONNECTION_REFUSED_RESOURCES : BT_CONNECTION_SUCCESSFUL;
-	ResponsePacket.ConnectionResponse.DestinationChannel = ChannelData->RemoteNumber;
-	ResponsePacket.ConnectionResponse.SourceChannel      = ChannelData->LocalNumber;
+	ResponsePacket.ConnectionResponse.DestinationChannel = ChannelData->LocalNumber;
+	ResponsePacket.ConnectionResponse.SourceChannel      = ChannelData->RemoteNumber;
+	ResponsePacket.ConnectionResponse.Result             = (ChannelData == NULL) ? BT_CONNECTION_REFUSED_RESOURCES :
+	                                                                               BT_CONNECTION_SUCCESSFUL;
 	ResponsePacket.ConnectionResponse.Status             = 0x00;
 	
 	Bluetooth_SendPacket(&ResponsePacket, sizeof(ResponsePacket), NULL);
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.h b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.h
index 012fbc0f9fd1e2e947d8af13fa298b0e764f8941..d38721a72c4cc48eab49e11a4edd92e274e0ba2e 100644
--- a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.h
+++ b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.h
@@ -42,13 +42,14 @@
 		
 	/* Macros: */
 		#define BT_ACL_DEBUG(l, s, ...)           do { if (ACL_DEBUG_LEVEL >= l) printf_P(PSTR("(ACL) " s "\r\n"), __VA_ARGS__); } while (0)
-		#define ACL_DEBUG_LEVEL                   1
+		#define ACL_DEBUG_LEVEL                   2
 
 		#define BT_CHANNELNUMBER_BASEOFFSET       0x0040
 
 		#define BT_CHANNEL_SIGNALING              0x0001
 		#define BT_CHANNEL_CONNECTIONLESS         0x0002
 		
+		#define BT_SIGNAL_COMMAND_REJECT          0x01
 		#define BT_SIGNAL_CONNECTION_REQUEST      0x02
 		#define BT_SIGNAL_CONNECTION_RESPONSE     0x03
 		#define BT_SIGNAL_CONFIGURATION_REQUEST   0x04
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothStack.h b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothStack.h
index 5ab7a6f9f929d2ea79a7d5f79dbfa8b375235417..fa30524a9d964dd3651b88bb7d3056b82724b1ec 100644
--- a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothStack.h
+++ b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothStack.h
@@ -41,7 +41,7 @@
 		#define BLUETOOTH_DATA_OUT_PIPE                  2
 		#define BLUETOOTH_EVENTS_PIPE                    3
 
-		#define BLUETOOTH_MAX_OPEN_CHANNELS              2
+		#define BLUETOOTH_MAX_OPEN_CHANNELS              6
 		
 		#define CHANNEL_PSM_SERVICEDISCOVERY             0x0001
 		#define CHANNEL_PSM_UDP                          0x0002