Index: gtk/gtkcellview.c
===================================================================
--- gtk/gtkcellview.c	(revision 21566)
+++ gtk/gtkcellview.c	(working copy)
@@ -55,6 +55,8 @@ struct _GtkCellViewPrivate
 
   GdkColor background;
   gboolean background_set;
+
+  gboolean use_fg;
 };
 
 
@@ -130,7 +132,8 @@ enum
   PROP_BACKGROUND,
   PROP_BACKGROUND_GDK,
   PROP_BACKGROUND_SET,
-  PROP_MODEL
+  PROP_MODEL,
+  PROP_USE_FG
 };
 
 G_DEFINE_TYPE_WITH_CODE (GtkCellView, gtk_cell_view, GTK_TYPE_WIDGET, 
@@ -183,7 +186,22 @@ gtk_cell_view_class_init (GtkCellViewCla
 							 P_("The model for cell view"),
 							 GTK_TYPE_TREE_MODEL,
 							 GTK_PARAM_READWRITE));
-  
+
+  /**
+   * GtkCellView:use-fg
+   *
+   * If set to %TRUE hint the cell renderer to use foreground colors for text drawing.
+   *
+   * since 2.16
+   */
+  g_object_class_install_property (gobject_class,
+                                   PROP_USE_FG,
+                                   g_param_spec_boolean ("use-fg",
+                                                         P_("Use foreground color when rendering text"),
+                                                         P_("If set the cell view will get a hint to use the foreground color when rendering text."),
+                                                         FALSE,
+                                                         GTK_PARAM_READWRITE));  
+
 #define ADD_SET_PROP(propname, propval, nick, blurb) g_object_class_install_property (gobject_class, propval, g_param_spec_boolean (propname, nick, blurb, FALSE, GTK_PARAM_READWRITE))
 
   ADD_SET_PROP ("background-set", PROP_BACKGROUND_SET,
@@ -237,6 +255,9 @@ gtk_cell_view_get_property (GObject    *
       case PROP_BACKGROUND_SET:
         g_value_set_boolean (value, view->priv->background_set);
         break;
+      case PROP_USE_FG:
+	g_value_set_boolean (value, view->priv->use_fg);
+	break;
       case PROP_MODEL:
 	g_value_set_object (value, view->priv->model);
 	break;
@@ -276,6 +297,9 @@ gtk_cell_view_set_property (GObject     
       case PROP_BACKGROUND_SET:
         view->priv->background_set = g_value_get_boolean (value);
         break;
+      case PROP_USE_FG:
+        gtk_cell_view_set_use_fg (view, g_value_get_boolean (value));
+        break;
       case PROP_MODEL:
 	gtk_cell_view_set_model (view, g_value_get_object (value));
 	break;
@@ -440,7 +464,10 @@ gtk_cell_view_expose (GtkWidget      *wi
     state = GTK_CELL_RENDERER_PRELIT;
   else
     state = 0;
-      
+
+  if (cellview->priv->use_fg)
+    state |= GTK_CELL_RENDERER_USE_FG;
+
   /* PACK_START */
   for (i = cellview->priv->cell_list; i; i = i->next)
     {
@@ -1024,6 +1051,53 @@ gtk_cell_view_set_background_color (GtkC
 }
 
 /**
+ * gtk_cell_view_set_use_fg
+ * @cell_view: a #GtkCellView
+ * @use_fg: %TRUE if foreground colors should be used for text
+ *
+ * Sets whether to hint the cell renderer that foreground colors should be
+ * used when rendering text.
+ *
+ * Since: 2.16
+ */
+void
+gtk_cell_view_set_use_fg (GtkCellView *cell_view,
+                          gboolean     use_fg)
+{
+  g_return_if_fail (GTK_IS_CELL_VIEW (cell_view));
+
+  use_fg = (use_fg != FALSE);
+
+  if (use_fg != cell_view->priv->use_fg)
+    {
+      cell_view->priv->use_fg = use_fg;
+
+      gtk_widget_queue_draw (GTK_WIDGET (cell_view));
+
+      g_object_notify (G_OBJECT (cell_view), "use-fg");
+    }
+}
+
+/**
+ * gtk_cell_view_get_use_fg
+ * @cell_view: a #GtkCellView
+ *
+ * Get whether the #GtkCellView hints the cell renderer that the foreground
+ * colors should be used when rendering text. See gtk_cell_view_set_use_fg().
+ *
+ * Returns: The value of the "use-fg" property
+ *
+ * Since: 2.16
+ */
+gboolean
+gtk_cell_view_get_use_fg (GtkCellView *cell_view)
+{
+  g_return_val_if_fail (GTK_IS_CELL_VIEW (cell_view), FALSE);
+
+  return cell_view->priv->use_fg;
+}
+
+/**
  * gtk_cell_view_get_cell_renderers:
  * @cell_view: a #GtkCellView
  * 
Index: gtk/gtkcellview.h
===================================================================
--- gtk/gtkcellview.h	(revision 21566)
+++ gtk/gtkcellview.h	(working copy)
@@ -71,6 +71,9 @@ gboolean          gtk_cell_view_get_size
 
 void              gtk_cell_view_set_background_color    (GtkCellView     *cell_view,
                                                          const GdkColor  *color);
+void              gtk_cell_view_set_use_fg              (GtkCellView     *cell_view,
+                                                         gboolean         use_fg);
+gboolean          gtk_cell_view_get_use_fg              (GtkCellView     *cell_view);
 GList            *gtk_cell_view_get_cell_renderers      (GtkCellView     *cell_view);
 
 G_END_DECLS
Index: gtk/gtkcellrenderer.h
===================================================================
--- gtk/gtkcellrenderer.h	(revision 21566)
+++ gtk/gtkcellrenderer.h	(working copy)
@@ -35,7 +35,8 @@ typedef enum
   GTK_CELL_RENDERER_INSENSITIVE = 1 << 2,
   /* this flag means the cell is in the sort column/row */
   GTK_CELL_RENDERER_SORTED      = 1 << 3,
-  GTK_CELL_RENDERER_FOCUSED     = 1 << 4
+  GTK_CELL_RENDERER_FOCUSED     = 1 << 4,
+  GTK_CELL_RENDERER_USE_FG      = 1 << 5
 } GtkCellRendererState;
 
 typedef enum
Index: gtk/gtkcellrenderertext.c
===================================================================
--- gtk/gtkcellrenderertext.c	(revision 21566)
+++ gtk/gtkcellrenderertext.c	(working copy)
@@ -1624,6 +1624,7 @@ gtk_cell_renderer_text_render (GtkCellRe
   gint x_offset;
   gint y_offset;
   GtkCellRendererTextPrivate *priv;
+  gboolean use_text;
 
   priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (cell);
 
@@ -1675,6 +1676,8 @@ gtk_cell_renderer_text_render (GtkCellRe
       cairo_destroy (cr);
     }
 
+  use_text = !(flags & GTK_CELL_RENDERER_USE_FG);
+
   if (priv->ellipsize_set && priv->ellipsize != PANGO_ELLIPSIZE_NONE)
     pango_layout_set_width (layout, 
 			    (cell_area->width - x_offset - 2 * cell->xpad) * PANGO_SCALE);
@@ -1684,7 +1687,7 @@ gtk_cell_renderer_text_render (GtkCellRe
   gtk_paint_layout (widget->style,
                     window,
                     state,
-		    TRUE,
+		    use_text,
                     expose_area,
                     widget,
                     "cellrenderertext",
Index: gtk/gtkcombobox.c
===================================================================
--- gtk/gtkcombobox.c	(revision 21566)
+++ gtk/gtkcombobox.c	(working copy)
@@ -2792,6 +2792,8 @@ gtk_combo_box_menu_setup (GtkComboBox *c
 
   if (priv->cell_view)
     {
+      gtk_cell_view_set_use_fg (GTK_CELL_VIEW (priv->cell_view), TRUE);
+
       priv->button = gtk_toggle_button_new ();
       gtk_button_set_focus_on_click (GTK_BUTTON (priv->button),
 				     priv->focus_on_click);
@@ -2892,6 +2894,7 @@ gtk_cell_view_menu_item_new (GtkComboBox
   GtkRequisition req;
 
   cell_view = gtk_cell_view_new ();
+  gtk_cell_view_set_use_fg (GTK_CELL_VIEW (cell_view), TRUE);
   item = gtk_menu_item_new ();
   gtk_container_add (GTK_CONTAINER (item), cell_view);
 
@@ -3656,6 +3659,7 @@ gtk_combo_box_list_setup (GtkComboBox *c
 
   if (priv->cell_view)
     {
+      gtk_cell_view_set_use_fg (GTK_CELL_VIEW (priv->cell_view), FALSE);
       gtk_cell_view_set_background_color (GTK_CELL_VIEW (priv->cell_view), 
 					  &GTK_WIDGET (combo_box)->style->base[GTK_WIDGET_STATE (combo_box)]);
 
Index: docs/reference/gtk/gtk-sections.txt
===================================================================
--- docs/reference/gtk/gtk-sections.txt	(revision 21566)
+++ docs/reference/gtk/gtk-sections.txt	(working copy)
@@ -4821,6 +4821,8 @@ gtk_cell_view_new_with_pixbuf
 gtk_cell_view_set_model
 gtk_cell_view_set_displayed_row
 gtk_cell_view_get_displayed_row
+gtk_cell_view_set_use_fg
+gtk_cell_view_get_use_fg
 gtk_cell_view_get_size_of_row
 gtk_cell_view_set_background_color
 gtk_cell_view_get_cell_renderers
Index: docs/reference/gtk/tmpl/gtkcellrenderer.sgml
===================================================================
--- docs/reference/gtk/tmpl/gtkcellrenderer.sgml	(revision 21566)
+++ docs/reference/gtk/tmpl/gtkcellrenderer.sgml	(working copy)
@@ -62,6 +62,7 @@ probably has a selection colored backgro
 @GTK_CELL_RENDERER_INSENSITIVE: The cell is drawn in an insensitive manner
 @GTK_CELL_RENDERER_SORTED: The cell is in a sorted row
 @GTK_CELL_RENDERER_FOCUSED: The cell is in the focus row.
+@GTK_CELL_RENDERER_USE_FG: The cell should use the foreground color to draw text.
 
 <!-- ##### ENUM GtkCellRendererMode ##### -->
 <para>
