? patch
Index: gtkitemfactory.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkitemfactory.c,v
retrieving revision 1.72
diff -r1.72 gtkitemfactory.c
879a880
>   gboolean uline_seen = FALSE;
892a894,897
> 	  else if (uline_seen)
> 	      p++;
> 	  else
> 	      uline_seen = TRUE;
Index: gtklabel.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtklabel.c,v
retrieving revision 1.138
diff -r1.138 gtklabel.c
1874c1874
<   gboolean underscore;
---
>   gboolean underscore, uline_is_set;
1886c1886
<   underscore = FALSE;
---
>   underscore = uline_is_set = FALSE;
1918a1919
>               uline_is_set = TRUE;
1930,1931c1931,1942
< 	      underscore = TRUE;
< 	      src = next_src;
---
> 	      if (uline_is_set && next_src[0] != '_')
> 	        {
>                   c = g_utf8_get_char (next_src);
> 		  accel_key = gdk_keyval_to_lower (gdk_unicode_to_keyval (c));
>                   *src++;  /* step of _ */
>                   *src++;  /* eat c     */
> 	        }
> 	      else
> 	        {
> 	          underscore = TRUE;
>                   src = next_src;
> 	        }
