--- bluez-utils-2.20/hcid/dbus.c.orig	2005-09-21 11:27:26 +0200
+++ bluez-utils-2.20/hcid/dbus.c	2005-09-21 11:27:35 +0200
@@ -120,6 +121,7 @@
 	DBusMessage *message;
 #ifdef HAVE_DBUS_MESSAGE_ITER_GET_BASIC
 	uint8_t *addr = (uint8_t *) &ci->bdaddr;
+	uint32_t ci_out = ci->out;
 #else
 	DBusMessageIter iter;
 #endif
@@ -138,7 +140,7 @@
 	bacpy(&req->bda, &ci->bdaddr);
 
 #ifdef HAVE_DBUS_MESSAGE_ITER_GET_BASIC
-	dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &ci->out,
+	dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &ci_out,
 			DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
 			&addr, sizeof(bdaddr_t), DBUS_TYPE_INVALID);
 #else
@@ -261,6 +263,8 @@
 	DBusMessage *message;
 #ifndef HAVE_DBUS_MESSAGE_ITER_GET_BASIC
 	DBusMessageIter iter;
+#else
+	int32_t tmp_rssi = rssi;
 #endif
 	char *local_addr, *peer_addr;
 	bdaddr_t tmp;
@@ -276,11 +280,12 @@
 	}
 
 #ifdef HAVE_DBUS_MESSAGE_ITER_GET_BASIC
+
 	dbus_message_append_args(message,
 					DBUS_TYPE_STRING, &local_addr,
 					DBUS_TYPE_STRING, &peer_addr,
 					DBUS_TYPE_UINT32, &class,
-					DBUS_TYPE_INT32, &rssi,
+					DBUS_TYPE_INT32, &tmp_rssi,
 					DBUS_TYPE_INVALID);
 #else
 	dbus_message_append_iter_init(message, &iter);