 libgimp/gimpitemcombobox.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/libgimp/gimpitemcombobox.c b/libgimp/gimpitemcombobox.c
index 2f62b66..8495a39 100644
--- a/libgimp/gimpitemcombobox.c
+++ b/libgimp/gimpitemcombobox.c
@@ -542,18 +542,18 @@ gimp_item_combo_box_changed (GimpIntComboBox *combo_box)
 {
   gint item_ID;
 
-  if (gimp_int_combo_box_get_active (combo_box, &item_ID))
+  if (gimp_int_combo_box_get_active (combo_box, &item_ID) &&
+      item_ID >= 0)
     {
       if (! gimp_item_is_valid (item_ID))
         {
-          GtkTreeModel *model;
+          GtkTreeIter  iter;
 
-          model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo_box));
+           g_signal_stop_emission_by_name (combo_box, "changed");
 
-          g_signal_stop_emission_by_name (combo_box, "changed");
-
-          gtk_list_store_clear (GTK_LIST_STORE (model));
-          gimp_item_combo_box_populate (combo_box);
+           gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo_box), &iter);
+           gtk_list_store_remove (GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (combo_box))),
+               &iter);
         }
     }
 }
