diff --git a/src/interpret.c b/src/interpret.c
index ef4286a52d65e65e2e9a7b6597f0aae5e6f06141..578d02731399a5181b75739aeb63561aae62da5b 100644
--- a/src/interpret.c
+++ b/src/interpret.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: interpret.c,v 1.19 1997/01/16 05:00:44 hubbe Exp $");
+RCSID("$Id: interpret.c,v 1.20 1997/01/17 21:06:40 hubbe Exp $");
 #include "interpret.h"
 #include "object.h"
 #include "program.h"
@@ -1021,9 +1021,17 @@ static void eval_instruction(unsigned char *pc)
       goto do_index;
 
       CASE(F_ARROW);
+      copy_shared_string(sp->u.string,fp->context.prog->strings[GET_ARG()]);
+      sp->type=T_STRING;
+      sp->subtype=1;
+      sp++;
+      print_return_value();
+      goto do_index;
+
       CASE(F_STRING_INDEX);
       copy_shared_string(sp->u.string,fp->context.prog->strings[GET_ARG()]);
       sp->type=T_STRING;
+      sp->subtype=0;
       sp++;
       print_return_value();
       /* Fall through */