diff -ur ../rhythmbox-0.10.0/plugins/daap/rb-daap-connection.c plugins/daap/rb-daap-connection.c
--- ../rhythmbox-0.10.0/plugins/daap/rb-daap-connection.c	2007-02-24 23:27:47.000000000 +0000
+++ plugins/daap/rb-daap-connection.c	2007-08-29 20:54:15.000000000 +0100
@@ -914,6 +914,7 @@
 		const gchar *artist = NULL;
 		const gchar *format = NULL;
 		const gchar *genre = NULL;
+		const gchar *streamURI = NULL;
 		gint length = 0;
 		gint track_number = 0;
 		gint disc_number = 0;
@@ -963,6 +964,9 @@
 				case RB_DAAP_CC_ASBR:
 					bitrate = g_value_get_int (&(meta_item->content));
 					break;
+				case RB_DAAP_CC_ASUL:
+					streamURI = g_value_get_string (&(meta_item->content));
+					break;
 				default:
 					break;
 			}
@@ -1050,6 +1055,11 @@
 		/* genre */
 		entry_set_string_prop (priv->db, entry, RHYTHMDB_PROP_GENRE, genre);
 
+		/* stream URI property is stored as a mountpoint for get_playback_uri */
+		if (streamURI) {
+			entry_set_string_prop (priv->db, entry, RHYTHMDB_PROP_MOUNTPOINT, streamURI);
+		}
+
 		if (i % commit_batch == 0) {
 			connection->priv->progress = ((float)i / (float)returned_count);
 			if (priv->emit_progress_id != 0) {
@@ -1544,7 +1554,7 @@
 					"daap.songartist,daap.daap.songgenre,daap.songsize,"
 					"daap.songtime,daap.songtrackcount,daap.songtracknumber,"
 					"daap.songyear,daap.songformat,daap.songgenre,"
-					"daap.songbitrate,daap.songdiscnumber",
+					"daap.songbitrate,daap.songdiscnumber,daap.songdataurl",
 					priv->database_id,
 					priv->session_id,
 					priv->revision_number);
diff -ur ../rhythmbox-0.10.0/plugins/daap/rb-daap-source.c plugins/daap/rb-daap-source.c
--- ../rhythmbox-0.10.0/plugins/daap/rb-daap-source.c	2007-02-24 23:27:47.000000000 +0000
+++ plugins/daap/rb-daap-source.c	2007-09-01 11:22:11.000000000 +0100
@@ -68,6 +74,7 @@
 static char * rb_daap_source_get_browser_key (RBSource *source);
 static char * rb_daap_source_get_paned_key (RBBrowserSource *source);
 static void rb_daap_source_get_status (RBSource *source, char **text, char **progress_text, float *progress);
+static char * rb_daap_source_get_playback_uri (RhythmDBEntry *entry, gpointer data);
 
 #define CONF_STATE_SORTING CONF_PREFIX "/state/daap/sorting"
 #define CONF_STATE_PANED_POSITION CONF_PREFIX "/state/daap/paned_position"
@@ -275,6 +317,7 @@
 	type = rhythmdb_entry_register_type (db, NULL);
 	type->save_to_disk = FALSE;
 	type->category = RHYTHMDB_ENTRY_NORMAL;
+	type->get_playback_uri = (RhythmDBEntryStringFunc) rb_daap_source_get_playback_uri;
 	g_object_unref (db);
 
 	icon = rb_daap_plugin_get_icon (RB_DAAP_PLUGIN (plugin), password_protected, FALSE);
@@ -777,3 +820,16 @@
 
 	RB_SOURCE_CLASS (rb_daap_source_parent_class)->impl_get_status (source, text, progress_text, progress);
 }
+
+static char *
+rb_daap_source_get_playback_uri (RhythmDBEntry *entry, gpointer data)
+{
+	const char *location;
+
+	location = rhythmdb_entry_get_string (entry, RHYTHMDB_PROP_MOUNTPOINT);
+	if(!location) {
+		location = rhythmdb_entry_get_string (entry, RHYTHMDB_PROP_LOCATION);
+	}
+
+	return g_strdup (location);
+}
