--- gtk/gtkrc.c.orig	2005-01-01 05:04:17.000000000 +0200
+++ gtk/gtkrc.c	2005-01-30 13:58:13.000000000 +0200
@@ -2695,6 +2695,7 @@ gtk_rc_parse_style (GtkRcContext *contex
 	      scanner->next_value.v_identifier[0] <= 'Z') /* match namespaced type names */
 	    {
 	      GtkRcProperty prop = { 0, 0, NULL, { 0, }, };
+	      gchar *name;
 	      
 	      g_scanner_get_next_token (scanner); /* eat type name */
 	      prop.type_name = g_quark_from_string (scanner->value.v_identifier);
@@ -2712,8 +2713,10 @@ gtk_rc_parse_style (GtkRcContext *contex
 		}
 
 	      /* it's important that we do the same canonification as GParamSpecPool here */
-	      g_strcanon (scanner->value.v_identifier, G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "-", '-');
-	      prop.property_name = g_quark_from_string (scanner->value.v_identifier);
+	      name = g_strdup (scanner->value.v_identifier);
+	      g_strcanon (name, G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "-", '-');
+	      prop.property_name = g_quark_from_string (name);
+	      g_free (name)
 
 	      token = gtk_rc_parse_assignment (scanner, &prop);
 	      if (token == G_TOKEN_NONE)
