Index: source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.cpp
===================================================================
--- source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.cpp	(revision 5344)
+++ source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.cpp	(revision 5358)
@@ -283,10 +283,13 @@
 
 	for (i = 0; i < num_rsp; i++) {
-
 		address = (ii + i)->bdaddr;
-		logging_debug("found peer " << ba2string(&address) << ", querying SDP.")
+
+		string saddress = ba2string(&address);
+		string sname = ba2name(&address, sock);
+
+		logging_debug("found peer [" << saddress << "] [" << sname << "]");
 
 		// TODO: sdp_search can be very slow, fork it!
-		sdp_search(address);
+		sdp_search( address, sname );
 	}
 
@@ -295,11 +298,11 @@
 
 	int nextscan = (rand() % 40) + 5;
-	logging_debug("Next sdp scan in " << nextscan << " seconds");
-
-	scan_timer_.expires_from_now(boost::posix_time::seconds(nextscan));
-	scan_timer_.async_wait(boost::bind(&BluetoothSdp::bt_scan, this));
-}
-
-void BluetoothSdp::sdp_search(bdaddr_t target) {
+	logging_debug("next sdp scan in " << nextscan << " seconds");
+
+	scan_timer_.expires_from_now( boost::posix_time::seconds(nextscan) );
+	scan_timer_.async_wait( boost::bind(&BluetoothSdp::bt_scan, this) );
+}
+
+void BluetoothSdp::sdp_search(bdaddr_t target, string devicename) {
 
 	/*
@@ -315,9 +318,11 @@
 	uint8_t port = 0;
 
+	// connect to the SDP server running on the remote machine
+	logging_debug("querying services from bt device ["
+			<< ba2string(&target) << "] [" << devicename << "]");
+
 	// prepare the buffers for the attributes
 	char name[256], info1[256], info2[256], info3[256];
 
-	// connect to the SDP server running on the remote machine
-	logging_debug("querying services from bt device " << ba2string(&target));
 	session = sdp_connect(BDADDR_ANY, &target, SDP_RETRY_IF_BUSY);
 
@@ -377,5 +382,5 @@
 }
 
-string BluetoothSdp::ba2string(bdaddr_t *ba) {
+string BluetoothSdp::ba2string(bdaddr_t* ba) {
 	/*
 	 * Returns a string holding the bt adress in human readable form.
@@ -388,4 +393,16 @@
 }
 
+string BluetoothSdp::ba2name(bdaddr_t* ba, int sock){
+
+	char name[256] = {0};
+	memset(name, 0, sizeof(name));
+
+	if( hci_read_remote_name(sock, ba, sizeof(name), name, 0) < 0 )
+		strcpy(name, "unknown");
+
+	string result = name;
+	return result;
+}
+
 #endif // HAVE_BLUETOOTH_BLUETOOTH_H
 
Index: source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.h
===================================================================
--- source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.h	(revision 5344)
+++ source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.h	(revision 5358)
@@ -85,6 +85,7 @@
 #ifdef HAVE_BLUETOOTH_BLUETOOTH_H
 	void bt_scan();
-	void sdp_search(bdaddr_t target);
-	string ba2string(bdaddr_t *ba);
+	void sdp_search(bdaddr_t target, string devicename);
+	string ba2string(bdaddr_t* ba);
+	string ba2name(bdaddr_t* ba, int sock);
 
 	sdp_session_t *sdp_session_;
