--- obexftpd.c.orig	2006-05-26 03:55:11.000000000 +0200
+++ obexftpd.c	2006-05-30 17:28:13.000000000 +0200
@@ -298,24 +298,28 @@ static void connect_server(obex_t *handl
 	uint8_t hi;
 	int hlen;
 
-	const uint8_t *who = NULL;
-	int who_len = 0;
+	uint8_t *target = NULL;
+	int target_len = 0;
+
 	printf("%s()\n", __FUNCTION__);
 
 	while(OBEX_ObjectGetNextHeader(handle, object, &hi, &hv, &hlen))	{
-		if(hi == OBEX_HDR_WHO)	{
-			who = hv.bs;
-			who_len = hlen;
-		}
-		else	{
+		switch(hi) {
+		case OBEX_HDR_TARGET:
+			if (0 < hlen)
+			{
+				if( (target = malloc(hlen))) {
+					target_len = hlen;
+					memcpy(target,hv.bs,target_len);
+				}
+			}
+			break;
+		default:	
 			printf("%s() Skipped header %02x\n", __FUNCTION__, hi);
+			break;
 		}
 	}
-	if (who_len == 6)	{
-		if(strncmp("Linux", who, 6) == 0)	{
-			printf("Weeeha. I'm talking to the coolest OS ever!\n");
-		}
-	}
+
 	OBEX_ObjectSetRsp(object, OBEX_RSP_SUCCESS, OBEX_RSP_SUCCESS);
 	if(OBEX_ObjectAddHeader(handle, object, OBEX_HDR_CONNECTION,
               		(obex_headerdata_t)((uint32_t) connection_id),
@@ -324,7 +328,17 @@ static void connect_server(obex_t *handl
                 DEBUG(1, "Error adding header\n");
                 OBEX_ObjectDelete(handle, object);
                 return;
-        } 
+        }
+	if (target && target_len) {
+		hv.bs = target;
+		if(OBEX_ObjectAddHeader(handle,object,OBEX_HDR_WHO,
+					hv,target_len,OBEX_FL_FIT_ONE_PACKET) < 0 ) {
+			DEBUG(1, "Error adding header\n");
+			OBEX_ObjectDelete(handle, object);
+			return;
+		}
+		free(target);
+	} 
 }
 
 
@@ -862,11 +876,19 @@ static void obex_event(obex_t *handle, o
 			break;
 		}
 		break;
+	case OBEX_EV_ABORT:
+		/* Request was aborted */
+            	printf("%s() OBEX_EV_ABORT: mode=%02x, obex_cmd=%02x, obex_rsp=%02x\n", __func__, 
+				mode, obex_cmd, obex_rsp);
+		break;
 
 	case OBEX_EV_STREAMEMPTY:
 		//(void) cli_fillstream(cli, object);
 		break;
 
+	case OBEX_EV_UNEXPECTED:
+		/* Unexpected data, not fatal */
+		break;
     default:
          printf("%s() Unhandled event %d\n", __func__, event);
          break;
