diff --git a/src/opcodes.c b/src/opcodes.c
index 7c86e530dc143d11ad06ab9fed2b06048181ac1e..57a9a194554eebf87f50d12d9df95084a7c1e1b9 100644
--- a/src/opcodes.c
+++ b/src/opcodes.c
@@ -22,7 +22,7 @@
 #include "builtin_functions.h"
 #include "module_support.h"
 
-RCSID("$Id: opcodes.c,v 1.25 1998/05/20 23:08:12 grubba Exp $");
+RCSID("$Id: opcodes.c,v 1.26 1998/05/25 16:41:23 grubba Exp $");
 
 void index_no_free(struct svalue *to,struct svalue *what,struct svalue *ind)
 {
@@ -48,6 +48,10 @@ void index_no_free(struct svalue *to,struct svalue *what,struct svalue *ind)
     to->u.integer=i;
     break;
 
+  case T_PROGRAM:
+    program_index_no_free(to, what->u.program, ind);
+    break;
+
   case T_STRING:
     if(ind->type==T_INT)
     {