diff --git a/src/backend/bacon-video-widget-gst-0.10.c b/src/backend/bacon-video-widget-gst-0.10.c
index 13bdc4c..85f345b 100644
--- a/src/backend/bacon-video-widget-gst-0.10.c
+++ b/src/backend/bacon-video-widget-gst-0.10.c
@@ -3123,31 +3123,26 @@ bacon_video_widget_set_connection_speed (BaconVideoWidget * bvw, int speed)
 }
 
 /**
- * bacon_video_widget_can_deinterlace:
- * @bvw: a #BaconVideoWidget
- *
- * Returns whether the widget can deinterlace videos.
- *
- * Return value: %TRUE if deinterlacing is supported, %FALSE otherwise
- **/
-gboolean
-bacon_video_widget_can_deinterlace (BaconVideoWidget *bvw)
-{
-  return FALSE;
-}
-
-/**
  * bacon_video_widget_set_deinterlacing:
  * @bvw: a #BaconVideoWidget
  * @deinterlace: %TRUE if videos should be deinterlaced, %FALSE otherwise
  *
- * Sets whether the widget should deinterlace videos. This is a no-op if
- * bacon_video_widget_can_deinterlace() returns %FALSE.
+ * Sets whether the widget should deinterlace videos.
  **/
 void
 bacon_video_widget_set_deinterlacing (BaconVideoWidget * bvw,
                                       gboolean deinterlace)
 {
+  g_return_if_fail (bvw != NULL);
+  g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw));
+  g_return_if_fail (GST_IS_ELEMENT (bvw->priv->play));
+
+  if (!g_object_class_find_property (G_OBJECT_GET_CLASS (bvw->priv->play), "enable-deinterlace")) {
+    GST_DEBUG ("Deinterlacing not available in playbin");
+    return;
+  }
+  GST_DEBUG ("Turning deinterlacing %s", deinterlace ? "on" : "off");
+  g_object_set (bvw->priv->play, "enable-deinterlace", deinterlace, NULL);
 }
 
 /**
@@ -3161,7 +3156,14 @@ bacon_video_widget_set_deinterlacing (BaconVideoWidget * bvw,
 gboolean
 bacon_video_widget_get_deinterlacing (BaconVideoWidget * bvw)
 {
-  return FALSE;
+  gboolean deinterlace = FALSE;
+
+  g_return_val_if_fail (bvw != NULL, FALSE);
+  g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE);
+  g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE);
+
+  g_object_get (bvw->priv->play, "enable-deinterlace", &deinterlace, NULL);
+  return deinterlace;
 }
 
 static gint
diff --git a/src/backend/bacon-video-widget.h b/src/backend/bacon-video-widget.h
index c4ecb32..a83b155 100644
--- a/src/backend/bacon-video-widget.h
+++ b/src/backend/bacon-video-widget.h
@@ -357,7 +357,6 @@ typedef enum {
 	BVW_RATIO_DVB = 4
 } BvwAspectRatio;
 
-gboolean bacon_video_widget_can_deinterlace	 (BaconVideoWidget *bvw);
 void bacon_video_widget_set_deinterlacing        (BaconVideoWidget *bvw,
 						  gboolean deinterlace);
 gboolean bacon_video_widget_get_deinterlacing    (BaconVideoWidget *bvw);
diff --git a/src/totem-object.c b/src/totem-object.c
index 703669b..29e3a6f 100644
--- a/src/totem-object.c
+++ b/src/totem-object.c
@@ -3998,9 +3998,6 @@ totem_callback_connect (Totem *totem)
 	GtkBox *box;
 
 	/* Menu items */
-	action = GTK_ACTION (gtk_builder_get_object (totem->xml, "deinterlace"));
-	gtk_action_set_visible (action, bacon_video_widget_can_deinterlace (totem->bvw));
-
 	action = gtk_action_group_get_action (totem->main_action_group, "repeat-mode");
 	gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action),
 		totem_playlist_get_repeat (totem->playlist));
