Index: src/backend/bacon-video-widget-xine.c
===================================================================
--- src/backend/bacon-video-widget-xine.c	(revision 4137)
+++ src/backend/bacon-video-widget-xine.c	(working copy)
@@ -169,7 +169,7 @@
 
 	/* Other stuff */
 	int xpos, ypos;
-	gboolean can_dvd, can_vcd, can_cdda;
+	gboolean can_dvd, can_vcd, can_cdda, can_dvb;
 	guint tick_id;
 	gboolean have_xvidmode;
 	gboolean auto_resize;
@@ -451,6 +451,8 @@
 			bvw->priv->can_dvd = TRUE;
 		else if (g_ascii_strcasecmp (autoplug_list[i], "CD") == 0)
 			bvw->priv->can_cdda = TRUE;
+		else if (g_ascii_strcasecmp (autoplug_list[i], "DVB") == 0)
+			bvw->priv->can_dvb = TRUE;
 		i++;
 	}
 
@@ -3227,6 +3229,8 @@
 		return bvw->priv->can_vcd;
 	case MEDIA_TYPE_CDDA:
 		return bvw->priv->can_cdda;
+	case MEDIA_TYPE_DVB:
+		return bvw->priv->can_dvb;
 	default:
 		return FALSE;
 	}
@@ -3248,6 +3252,8 @@
 		plugin_id = "VCD";
 	else if (type == MEDIA_TYPE_CDDA)
 		plugin_id = "CD";
+	else if (type == MEDIA_TYPE_DVB)
+		plugin_id = "DVB";
 	else
 		return NULL;
 
Index: src/backend/bacon-video-widget.h
===================================================================
--- src/backend/bacon-video-widget.h	(revision 4137)
+++ src/backend/bacon-video-widget.h	(working copy)
@@ -176,6 +176,9 @@
 						  const char *path);
 gboolean bacon_video_widget_can_play             (BaconVideoWidget *bvw,
 						  MediaType type);
+
+#define MEDIA_TYPE_DVB MEDIA_TYPE_DVD+1
+
 gchar **bacon_video_widget_get_mrls		 (BaconVideoWidget *bvw,
 						  MediaType type);
 void bacon_video_widget_set_subtitle_font	 (BaconVideoWidget *bvw,
Index: src/totem-uri.c
===================================================================
--- src/totem-uri.c	(revision 4137)
+++ src/totem-uri.c	(working copy)
@@ -61,6 +61,8 @@
 		return TRUE;
 	if (g_str_has_prefix (uri, "cd:") != FALSE)
 		return TRUE;
+	if (g_str_has_prefix (uri, "dvb:") != FALSE)
+		return TRUE;
 
 	return FALSE;
 }
Index: src/totem-playlist.c
===================================================================
--- src/totem-playlist.c	(revision 4137)
+++ src/totem-playlist.c	(working copy)
@@ -276,6 +276,8 @@
 		return TRUE;
 	if (g_str_has_prefix (mrl, "cd:") != FALSE)
 		return TRUE;
+	if (g_str_has_prefix (mrl, "dvb:") != FALSE)
+		return TRUE;
 
 	return FALSE;
 }
Index: src/totem.c
===================================================================
--- src/totem.c	(revision 4137)
+++ src/totem.c	(working copy)
@@ -1817,7 +1817,8 @@
 				|| g_str_has_prefix (filename, "dvd:") != FALSE
 				|| g_str_has_prefix (filename, "vcd:") != FALSE
 				|| g_str_has_prefix (filename, "cdda:") != FALSE
-				|| g_str_has_prefix (filename, "cd:") != FALSE)
+				|| g_str_has_prefix (filename, "cd:") != FALSE
+				|| g_str_has_prefix (filename, "dvb:") != FALSE)
 		{
 			if (cleared == FALSE)
 			{
@@ -1838,6 +1839,8 @@
 			} else if (g_str_has_prefix (filename, "cdda:/") != FALSE) {
 				totem_playlist_add_mrl (totem->playlist, data, NULL);
 				changed = TRUE;
+			} else if (g_str_equal (filename, "dvb:") != FALSE) {
+				totem_action_load_media (totem, MEDIA_TYPE_DVB);
 			} else if (totem_playlist_add_mrl (totem->playlist,
 						filename, NULL) != FALSE) {
 				totem_action_add_recent (totem, filename);
@@ -2106,6 +2109,8 @@
 			totem_action_play_media (totem, MEDIA_TYPE_VCD);
 		} else if (g_str_has_prefix (url, "cd:") != FALSE) {
 			totem_action_play_media (totem, MEDIA_TYPE_CDDA);
+		} else if (g_str_has_prefix (url, "dvb:") != FALSE) {
+			totem_action_play_media (totem, MEDIA_TYPE_DVB);
 		} else if (g_str_has_prefix (url, "cdda:/") != FALSE) {
 			totem_playlist_add_mrl (totem->playlist, url, NULL);
 		} else if (totem_playlist_add_mrl (totem->playlist,
