Index: gtk/gtkrc.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkrc.c,v
retrieving revision 1.184
diff -u -p -r1.184 gtkrc.c
--- gtk/gtkrc.c	21 Jul 2006 16:12:44 -0000	1.184
+++ gtk/gtkrc.c	3 Aug 2006 10:34:05 -0000
@@ -2677,7 +2677,28 @@ gtk_rc_parse_assignment (GScanner      *
               g_string_append_c (gstring, ' ');
               g_string_append (gstring, scanner->value.v_identifier);
 
+              /* temporarily reset scanner mode to default, so we
+               * don't peek the next token in a mode that only makes
+               * sense in this function; because if anything but
+               * G_TOKEN_LEFT_PAREN follows, the next token will be
+               * parsed by our caller
+               */
+              scanner->config->scan_identifier = scan_identifier;
+              scanner->config->scan_symbols = scan_symbols;
+              scanner->config->identifier_2_string = identifier_2_string;
+              scanner->config->char_2_token = char_2_token;
+              scanner->config->scan_identifier_NULL = scan_identifier_NULL;
+              scanner->config->numbers_2_int = numbers_2_int;
+
               token = g_scanner_peek_next_token (scanner);
+
+              /* restore adjusted scanner mode */
+              scanner->config->scan_identifier = TRUE;
+              scanner->config->scan_symbols = FALSE;
+              scanner->config->identifier_2_string = FALSE;
+              scanner->config->char_2_token = TRUE;
+              scanner->config->scan_identifier_NULL = FALSE;
+              scanner->config->numbers_2_int = TRUE;
 
               if (token != G_TOKEN_LEFT_PAREN)
                 {
