--- gailwidget.c.orig	2006-09-26 16:48:30.000000000 +0100
+++ gailwidget.c	2006-10-09 09:42:57.737837000 +0100
@@ -467,6 +467,22 @@
                     }
                 }
             }
+          else if (GTK_IS_COMBO_BOX (widget))
+            /*
+             * Handle the case when GtkFileChooserButton is the mnemonic
+             * widget.  The GtkComboBox which is a child of the
+             * GtkFileChooserButton should be the mnemonic widget.
+             * See bug #359843.
+             */
+            {
+              GtkWidget *temp_widget;
+
+              temp_widget = gtk_widget_get_parent (widget);
+              if (GTK_IS_HBOX (temp_widget))
+                {
+                  label = find_label (temp_widget);
+                }
+            }
         }
 
       if (label)
--- gaillabel.c.orig	2006-09-25 16:40:23.000000000 +0100
+++ gaillabel.c	2006-10-09 09:29:33.290210000 +0100
@@ -467,14 +467,34 @@
           AtkObject *accessible_array[1];
           AtkRelation* relation;
 
-          /*
-           * Handle the case where a GnomeIconEntry is specified as the 
-           * mnemonic widget. use the button which is a grandchild of the
-           * GnomeIconEntry as the mnemonic widget. See bug #133967.
-           */
           if (!GTK_WIDGET_CAN_FOCUS (mnemonic_widget))
             {
-              if (GTK_IS_BOX (mnemonic_widget))
+            /*
+             * Handle the case where a GtkFileChooserButton is specified as the 
+             * mnemonic widget. use the combobox which is a child of the
+             * GtkFileChooserButton as the mnemonic widget. See bug #359843.
+             */
+             if (GTK_IS_BOX (mnemonic_widget))
+               {
+                  GList *list, *tmpl;
+
+                  list = gtk_container_get_children (GTK_CONTAINER (mnemonic_widget));
+                  if (g_list_length (list) == 2)
+                    {
+                      tmpl = g_list_last (list);
+                      if (GTK_IS_COMBO_BOX(tmpl->data))
+                        {
+                          mnemonic_widget = GTK_WIDGET(tmpl->data);
+                        }
+                    }
+                  g_list_free (list);
+                }
+            /*
+             * Handle the case where a GnomeIconEntry is specified as the 
+             * mnemonic widget. use the button which is a grandchild of the
+             * GnomeIconEntry as the mnemonic widget. See bug #133967.
+             */
+              else if (GTK_IS_BOX (mnemonic_widget))
                 {
                   GList *list;
 
