Index: plug-ins/script-fu/tinyscheme/scheme.c
===================================================================
RCS file: /cvs/gnome/gimp/plug-ins/script-fu/tinyscheme/scheme.c,v
retrieving revision 1.26
diff -u -p -r1.26 scheme.c
--- plug-ins/script-fu/tinyscheme/scheme.c	13 Dec 2006 22:01:09 -0000	1.26
+++ plug-ins/script-fu/tinyscheme/scheme.c	14 Dec 2006 10:07:59 -0000
@@ -770,14 +770,16 @@ static pointer oblist_initial_value(sche
 /* returns the new symbol */
 static pointer oblist_add_by_name(scheme *sc, const char *name)
 {
+  pointer s;
   pointer x;
   int location;
 
-  x = immutable_cons(sc, mk_string(sc, name), sc->NIL);
+  s = mk_string(sc, name);
+  x = immutable_cons(sc, s, sc->NIL);
   typeflag(x) = T_SYMBOL;
   setimmutable(car(x));
 
-  location = hash_fn(name, ivalue_unchecked(sc->oblist));
+  location = hash_fn(strkey(s), ivalue_unchecked(sc->oblist));
   set_vector_elem(sc->oblist, location,
                   immutable_cons(sc, x, vector_elem(sc->oblist, location)));
   return x;
@@ -795,7 +797,7 @@ static INLINE pointer oblist_find_by_nam
   key = g_utf8_collate_key(s, -1);
   g_free(s);
 
-  location = hash_fn(name, ivalue_unchecked(sc->oblist));
+  location = hash_fn(key, ivalue_unchecked(sc->oblist));
   for (x = vector_elem(sc->oblist, location); x != sc->NIL; x = cdr(x)) {
     s = symkey(car(x));
     if(strcmp(key, s) == 0) {
