/*
              LUFA Library
-     Copyright (C) Dean Camera, 2011.
+     Copyright (C) Dean Camera, 2012.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
        ResponsePacket.SignalCommandHeader.Length            = sizeof(ResponsePacket.ConnectionResponse);
 
        /* Fill out the Connection Response in the response packet */
-       ResponsePacket.ConnectionResponse.DestinationChannel = ChannelData->LocalNumber;
-       ResponsePacket.ConnectionResponse.SourceChannel      = ChannelData->RemoteNumber;
+       ResponsePacket.ConnectionResponse.DestinationChannel = (ChannelData != NULL) ? ChannelData->LocalNumber  : 0;
+       ResponsePacket.ConnectionResponse.SourceChannel      = (ChannelData != NULL) ? ChannelData->RemoteNumber : 0;
        ResponsePacket.ConnectionResponse.Result             = ChannelStatus;
        ResponsePacket.ConnectionResponse.Status             = 0x00;
 
        ResponsePacket.SignalCommandHeader.Length            = sizeof(ResponsePacket.ConfigurationResponse);
 
        /* Fill out the Configuration Response in the response packet */
-       ResponsePacket.ConfigurationResponse.SourceChannel   = ChannelData->RemoteNumber;
+       ResponsePacket.ConfigurationResponse.SourceChannel   = (ChannelData != NULL) ? ChannelData->RemoteNumber   : 0;
        ResponsePacket.ConfigurationResponse.Flags           = 0x00;
        ResponsePacket.ConfigurationResponse.Result          = (ChannelData != NULL) ? BT_CONFIGURATION_SUCCESSFUL : BT_CONFIGURATION_REJECTED;
 
        ResponsePacket.SignalCommandHeader.Length               = sizeof(ResponsePacket.DisconnectionResponse);
 
        /* Fill out the Disconnection Response in the response packet */
-       ResponsePacket.DisconnectionResponse.DestinationChannel = ChannelData->RemoteNumber;
-       ResponsePacket.DisconnectionResponse.SourceChannel      = ChannelData->LocalNumber;
+       ResponsePacket.DisconnectionResponse.DestinationChannel = (ChannelData != NULL) ? ChannelData->RemoteNumber : 0;
+       ResponsePacket.DisconnectionResponse.SourceChannel      = (ChannelData != NULL) ? ChannelData->LocalNumber  : 0;
 
        Bluetooth_SendPacket(&ResponsePacket, sizeof(ResponsePacket), NULL);