--- gimp-2.6.1/plug-ins/script-fu/tinyscheme/scheme.c.orig	Thu Jan 21 11:36:37 2010
+++ gimp-2.6.1/plug-ins/script-fu/tinyscheme/scheme.c	Mon Jan 25 11:20:56 2010
@@ -45,6 +45,8 @@
 
 #include <libintl.h>
 
+#include "../script-fu-intl.h"
+
 #include "scheme-private.h"
 
 #if !STANDALONE
@@ -90,6 +92,7 @@
 #define TOK_SHARP   10
 #define TOK_SHARP_CONST 11
 #define TOK_VEC     12
+#define TOK_USCORE  13
 
 # define BACKQUOTE '`'
 
@@ -1845,7 +1848,7 @@
           return (TOK_DQUOTE);
      case '_':
           if ((c=inchar(sc)) == '"')
-               return (TOK_DQUOTE);
+               return (TOK_USCORE);
           backchar(sc,c);
           return (TOK_ATOM);
      case BACKQUOTE:
@@ -3882,6 +3885,7 @@
 
 static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
      pointer x;
+     char *trans_str;
 
      if(sc->nesting!=0) {
           int n=sc->nesting;
@@ -4009,6 +4013,17 @@
                x=readstrexp(sc);
                if(x==sc->F) {
                  Error_0(sc,"Error reading string");
+               }
+               setimmutable(x);
+               s_return(sc,x);
+          case TOK_USCORE:
+               x=readstrexp(sc);
+               if(x==sc->F) {
+                 Error_0(sc,"Error reading string");
+               }
+               trans_str = gettext (strvalue (x));
+               if (trans_str != strvalue(x)) {
+                 x = mk_string(sc, trans_str);
                }
                setimmutable(x);
                s_return(sc,x);
