Index: gtk/gtk.symbols
===================================================================
--- gtk/gtk.symbols	(Revision 20397)
+++ gtk/gtk.symbols	(Arbeitskopie)
@@ -855,6 +855,7 @@ gtk_combo_box_popup
 gtk_combo_box_prepend_text
 gtk_combo_box_remove_text
 gtk_combo_box_set_active
+gtk_combo_box_set_active_text
 gtk_combo_box_set_active_iter
 gtk_combo_box_set_add_tearoffs
 gtk_combo_box_set_column_span_column
Index: gtk/gtkcombobox.c
===================================================================
--- gtk/gtkcombobox.c	(Revision 20397)
+++ gtk/gtkcombobox.c	(Arbeitskopie)
@@ -291,6 +291,8 @@ static void     gtk_combo_box_set_active
 
 static void     gtk_combo_box_check_appearance     (GtkComboBox      *combo_box);
 static gchar *  gtk_combo_box_real_get_active_text (GtkComboBox      *combo_box);
+static void     gtk_combo_box_real_set_active_text (GtkComboBox      *combo_box,
+ 						    const gchar      *text);
 static void     gtk_combo_box_real_move_active     (GtkComboBox      *combo_box,
                                                     GtkScrollType     scroll);
 static void     gtk_combo_box_real_popup           (GtkComboBox      *combo_box);
@@ -482,6 +484,7 @@ gtk_combo_box_class_init (GtkComboBoxCla
   GtkBindingSet *binding_set;
 
   klass->get_active_text = gtk_combo_box_real_get_active_text;
+  klass->set_active_text = gtk_combo_box_real_set_active_text;
 
   container_class = (GtkContainerClass *)klass;
   container_class->forall = gtk_combo_box_forall;
@@ -5162,6 +5165,95 @@ gtk_combo_box_real_get_active_text (GtkC
   return text;
 }
 
+/**
+ * gtk_combo_box_set_active_text:
+ * @combo_box: A #GtkComboBox constructed with gtk_combo_box_new_text().
+ * @text: string containing the desired active text. %NULL to unselect.
+ *
+ * Sets the currently active item in @combo_box to @text.  If @text does
+ * not match an existing text item stored in @combo_box or if @text is %NULL,
+ * the combo box will be placed in the unselected state.  Note that you can
+ * only use this function with combo boxes constructed with
+ * gtk_combo_box_new_text() and with #GtkComboBoxEntry<!-- -->s.
+ *
+ * Since: 2.14
+ */
+void
+gtk_combo_box_set_active_text (GtkComboBox *combo_box,
+			       const gchar *text)
+{
+  GtkComboBoxClass *class;
+
+  g_return_if_fail (GTK_IS_COMBO_BOX (combo_box));
+
+  class = GTK_COMBO_BOX_GET_CLASS (combo_box);
+
+  if (class->set_active_text)
+    (* class->set_active_text) (combo_box, text);
+
+}
+
+typedef struct {
+  const gchar *text;
+  GtkTreeIter  iter;
+  gboolean     found;
+} TextSearchData;
+
+static gboolean
+search_text_func (GtkTreeModel *model,
+		  GtkTreePath  *path,
+		  GtkTreeIter  *iter,
+		  gpointer      data)
+{
+  TextSearchData *search_data = (TextSearchData *)data;
+  gchar          *text = NULL;
+
+  gtk_tree_model_get (model, iter, 0, &text, -1);
+
+  if (strcmp (text,search_data->text) == 0)
+    {
+      search_data->found = TRUE;
+      search_data->iter  = *iter;
+    }
+
+  g_free (text);
+
+  return FALSE;
+}
+
+void
+gtk_combo_box_real_set_active_text (GtkComboBox *combo_box,
+				    const gchar *text)
+{
+  g_return_if_fail (GTK_IS_LIST_STORE (combo_box->priv->model));
+
+  if (!text)
+    {
+
+      gtk_combo_box_set_active (combo_box, -1);
+
+    }
+  else
+    {
+      TextSearchData search_data;
+
+      search_data.text        = text;
+      search_data.found       = FALSE;
+
+      gtk_tree_model_foreach (combo_box->priv->model, search_text_func, &search_data);
+      if (search_data.found)
+        {
+          gtk_combo_box_set_active_iter (combo_box, &search_data.iter);
+        }
+      else
+        {
+          gtk_combo_box_set_active (combo_box, -1);
+        }
+
+    }
+
+}
+
 static void
 gtk_combo_box_real_move_active (GtkComboBox   *combo_box,
                                 GtkScrollType  scroll)
Index: gtk/gtkcombobox.h
===================================================================
--- gtk/gtkcombobox.h	(Revision 20397)
+++ gtk/gtkcombobox.h	(Arbeitskopie)
@@ -58,6 +58,8 @@ struct _GtkComboBoxClass
 
   /* vfuncs */
   gchar *  (* get_active_text)  (GtkComboBox *combo_box);
+  void     (* set_active_text)  (GtkComboBox *combo_box,
+				 const gchar *text);
 
   /* Padding for future expansion */
   void (*_gtk_reserved0) (void);
@@ -126,6 +128,8 @@ void          gtk_combo_box_prepend_text
 void          gtk_combo_box_remove_text      (GtkComboBox     *combo_box,
                                               gint             position);
 gchar        *gtk_combo_box_get_active_text  (GtkComboBox     *combo_box);
+void          gtk_combo_box_set_active_text  (GtkComboBox     *combo_box,
+					      const gchar     *text);
 
 /* programmatic control */
 void          gtk_combo_box_popup            (GtkComboBox     *combo_box);
