diff --git a/shell/shell-search-renderer.c b/shell/shell-search-renderer.c
index 8b70854..5abc0fb 100644
--- a/shell/shell-search-renderer.c
+++ b/shell/shell-search-renderer.c
@@ -33,6 +33,7 @@ struct _ShellSearchRendererPrivate
   gchar *search_string;
 
   PangoLayout *layout;
+  GdkRGBA color;
 };
 
 enum
@@ -277,6 +278,7 @@ shell_search_renderer_render (GtkCellRenderer      *cell,
 {
   ShellSearchRendererPrivate *priv = SHELL_SEARCH_RENDERER (cell)->priv;
   PangoRectangle rect;
+  GdkRGBA *color = &priv->color;
 
   shell_search_renderer_set_layout (SHELL_SEARCH_RENDERER (cell), widget);
 
@@ -284,10 +286,10 @@ shell_search_renderer_render (GtkCellRenderer      *cell,
 
   cairo_move_to (cr, cell_area->x, cell_area->y);
 
-  /* FIXME: get the correct colour from the theme */
-  cairo_set_source_rgb (cr, 0, 0, 0);
+  cairo_set_source_rgb (cr, color->red, color->green, color->blue);
+
   if (priv->layout)
-    pango_cairo_layout_path (cr, priv->layout);
+    pango_cairo_show_layout (cr, priv->layout);
   cairo_fill (cr);
 }
 
@@ -337,7 +339,27 @@ shell_search_renderer_class_init (ShellSearchRendererClass *klass)
 static void
 shell_search_renderer_init (ShellSearchRenderer *self)
 {
+  GdkScreen *screen;
+  GtkWidgetPath *path;
+  GtkStyleContext *context;
+  GdkRGBA *color;
+
   self->priv = SEARCH_RENDERER_PRIVATE (self);
+
+  context = gtk_style_context_new ();
+  path = gtk_widget_path_new ();
+  screen = gdk_screen_get_default();
+
+  gtk_widget_path_append_type (path, GTK_TYPE_LABEL);
+  gtk_style_context_set_path (context, path);
+  gtk_style_context_set_screen (context, screen);
+
+  color = &self->priv->color;
+
+  gtk_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, color);
+
+  g_object_unref (context);
+  gtk_widget_path_free (path);
 }
 
 ShellSearchRenderer *
