diff --git a/libempathy-gtk/empathy-cell-renderer-text.c b/libempathy-gtk/empathy-cell-renderer-text.c
index d0590ef..13e41b6 100644
--- a/libempathy-gtk/empathy-cell-renderer-text.c
+++ b/libempathy-gtk/empathy-cell-renderer-text.c
@@ -300,8 +300,9 @@ cell_renderer_text_update_text (EmpathyCellRendererText *cell,
 	EmpathyCellRendererTextPriv *priv;
 	PangoAttrList              *attr_list;
 	PangoAttribute             *attr_color = NULL, *attr_size;
-	GtkStyle                   *style;
+	GtkStyleContext            *context;
 	gchar                      *str;
+	PangoFontDescription *font_desc;
 
 	priv = GET_PRIV (cell);
 
@@ -324,19 +325,25 @@ cell_renderer_text_update_text (EmpathyCellRendererText *cell,
 		return;
 	}
 
-	style = gtk_widget_get_style (widget);
+	context = gtk_widget_get_style_context (widget);
 
 	attr_list = pango_attr_list_new ();
 
-	attr_size = pango_attr_size_new (pango_font_description_get_size (style->font_desc) / 1.2);
+	gtk_style_context_get (context, 0,
+	   GTK_STYLE_PROPERTY_FONT, &font_desc, NULL);
+
+	attr_size = pango_attr_size_new (
+	     pango_font_description_get_size (font_desc) / 1.2);
+	pango_font_description_free (font_desc);
+
 	attr_size->start_index = strlen (priv->name) + 1;
 	attr_size->end_index = -1;
 	pango_attr_list_insert (attr_list, attr_size);
 
 	if (!selected) {
-		GdkColor color;
+		GdkRGBA color;
 
-		color = style->text_aa[GTK_STATE_NORMAL];
+		gtk_style_context_get_color (context, 0, &color);
 
 		attr_color = pango_attr_foreground_new (color.red, color.green, color.blue);
 		attr_color->start_index = attr_size->start_index;
diff --git a/libempathy-gtk/empathy-chat-text-view.c b/libempathy-gtk/empathy-chat-text-view.c
index 5d5dcde..b58fbc2 100644
--- a/libempathy-gtk/empathy-chat-text-view.c
+++ b/libempathy-gtk/empathy-chat-text-view.c
@@ -219,7 +219,7 @@ chat_text_view_system_font_update (EmpathyChatTextView *view)
 		font_description = NULL;
 	}
 
-	gtk_widget_modify_font (GTK_WIDGET (view), font_description);
+	gtk_widget_override_font (GTK_WIDGET (view), font_description);
 
 	if (font_description) {
 		pango_font_description_free (font_description);
diff --git a/libempathy-gtk/empathy-status-preset-dialog.c b/libempathy-gtk/empathy-status-preset-dialog.c
index 957a17d..2c36cb3 100644
--- a/libempathy-gtk/empathy-status-preset-dialog.c
+++ b/libempathy-gtk/empathy-status-preset-dialog.c
@@ -351,12 +351,12 @@ status_preset_dialog_set_add_combo_changed (EmpathyStatusPresetDialog *self,
 	gtk_widget_set_sensitive (priv->add_button, state);
 
 	if (state) {
-		gtk_widget_modify_text (entry, GTK_STATE_NORMAL, NULL);
+		gtk_widget_override_color (entry, 0, NULL);
 	} else {
-		GdkColor colour;
+		GdkRGBA color;
 
-		gdk_color_parse ("Gray", &colour); /* FIXME - theme */
-		gtk_widget_modify_text (entry, GTK_STATE_NORMAL, &colour);
+		if (gdk_rgba_parse (&color, "Gray")) /* FIXME - theme */
+			gtk_widget_override_color (entry, 0, &color);
 
 		if (reset_text) {
 			priv->block_add_combo_changed++;
diff --git a/libempathy-gtk/empathy-theme-boxes.c b/libempathy-gtk/empathy-theme-boxes.c
index bf97f3f..058fb48 100644
--- a/libempathy-gtk/empathy-theme-boxes.c
+++ b/libempathy-gtk/empathy-theme-boxes.c
@@ -289,12 +289,12 @@ theme_boxes_maybe_append_header (EmpathyThemeBoxes *theme,
 	tag = gtk_text_tag_table_lookup (table, EMPATHY_THEME_BOXES_TAG_HEADER);
 	g_object_get (tag, "foreground-set", &color_set, NULL);
 	if (color_set) {
-		GdkColor *color;
+		GdkRGBA color;
 
-		g_object_get (tag, "foreground-gdk", &color, NULL);
-		gtk_widget_modify_fg (label1, GTK_STATE_NORMAL, color);
-		gtk_widget_modify_fg (label2, GTK_STATE_NORMAL, color);
-		gdk_color_free (color);
+		g_object_get (tag, "foreground-rgba", &color, NULL);
+
+		gtk_widget_override_color (label1, 0, &color);
+		gtk_widget_override_color (label2, 0, &color);
 	}
 
 	/* Pack labels into the box */
diff --git a/libempathy-gtk/empathy-video-widget.c b/libempathy-gtk/empathy-video-widget.c
index 26cc878..b4b39ff 100644
--- a/libempathy-gtk/empathy-video-widget.c
+++ b/libempathy-gtk/empathy-video-widget.c
@@ -83,7 +83,7 @@ static void
 empathy_video_widget_init (EmpathyVideoWidget *obj)
 {
   EmpathyVideoWidgetPriv *priv = GET_PRIV (obj);
-  GdkColor black;
+  GdkRGBA black;
 
   priv->lock = g_mutex_new ();
 
@@ -92,9 +92,8 @@ empathy_video_widget_init (EmpathyVideoWidget *obj)
     G_CALLBACK (empathy_video_widget_element_added_cb),
     obj);
 
-  if (gdk_color_parse ("Black", &black))
-    gtk_widget_modify_bg (GTK_WIDGET (obj), GTK_STATE_NORMAL,
-      &black);
+  if (gdk_rgba_parse (&black, "Black"))
+    gtk_widget_override_background_color (GTK_WIDGET (obj), 0, &black);
 
   gtk_widget_set_double_buffered (GTK_WIDGET (obj), FALSE);
 }
@@ -434,8 +433,7 @@ empathy_video_widget_draw (GtkWidget *widget,
     {
       gtk_widget_get_allocation (widget, &allocation);
 
-      gtk_paint_flat_box (gtk_widget_get_style (widget), cr,
-          GTK_STATE_NORMAL, GTK_SHADOW_NONE, widget, NULL,
+      gtk_render_frame (gtk_widget_get_style_context (widget), cr,
           0, 0,
           gtk_widget_get_allocated_width (widget),
           gtk_widget_get_allocated_height (widget));
