A method to select a data transfer protocol by an attached device, the method comprising: detecting a physical attachment of the device to a host computer (105, 110, 115), the device capable of using at least two data transfer protocols; attempting the use of a first data transfer protocol by the device, the first data transfer protocol comprising an initial attempt protocol; upon failure of the first data transfer protocol to initiate communications with the host computer (105, 110, 115), logically disconnecting the device followed by logically reconnecting the device; attempting use of a second data transfer protocol by the device, wherein the second data transfer protocol is a successful protocol in initiating communications with the host computer (105, 110, 115); storing an indicator of the successful protocol, wherein the indicator is used on a subsequent physical attachment of the device to the host computer (105, 110, 115) or another host computer (105, 110, 115) to select an initial attempt protocol; and sensing a physical disconnection of the device from the host computer (105, 110,115); detecting a subsequent physical attachment of the device to the host computer (105, 110, 115) or to another host computer (105, 110, 115); the method being characterised by: attempting the use of the successful protocol identified by the indicator if a predetermined count is not exceeded, wherein the count is an indication of the number of physical attachments encountered by the device to any host computer (105, 110, 115); and attempting the use of an alternate protocol other than the successful protocol identified by the indicator to establish communication with the host computer (105, 110, 115) or another host computer (105, 110, 115) if the predetermined count is exceeded. detecting a physical attachment of the device to a host computer (105, 110, 115), the device capable of using at least two data transfer protocols; attempting the use of a first data transfer protocol by the device, the first data transfer protocol comprising an initial attempt protocol; upon failure of the first data transfer protocol to initiate communications with the host computer (105, 110, 115), logically disconnecting the device followed by logically reconnecting the device; attempting use of a second data transfer protocol by the device, wherein the second data transfer protocol is a successful protocol in initiating communications with the host computer (105, 110, 115); storing an indicator of the successful protocol, wherein the indicator is used on a subsequent physical attachment of the device to the host computer (105, 110, 115) or another host computer (105, 110, 115) to select an initial attempt protocol; and sensing a physical disconnection of the device from the host computer (105, 110,115); detecting a subsequent physical attachment of the device to the host computer (105, 110, 115) or to another host computer (105, 110, 115); the method being characterised by: attempting the use of the successful protocol identified by the indicator if a predetermined count is not exceeded, wherein the count is an indication of the number of physical attachments encountered by the device to any host computer (105, 110, 115); and attempting the use of an alternate protocol other than the successful protocol identified by the indicator to establish communication with the host computer (105, 110, 115) or another host computer (105, 110, 115) if the predetermined count is exceeded.