diff --git a/src/operators.c b/src/operators.c
index afdedfcf7e82f3281fda00e3eda07e59624c0bac..e93350b3ce380e5a40408c6a0cf17d40290edef3 100644
--- a/src/operators.c
+++ b/src/operators.c
@@ -6,7 +6,7 @@
 /**/
 #include "global.h"
 #include <math.h>
-RCSID("$Id: operators.c,v 1.100 2000/08/17 19:07:13 grubba Exp $");
+RCSID("$Id: operators.c,v 1.101 2000/08/31 14:43:00 grubba Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "multiset.h"
@@ -2749,9 +2749,11 @@ multiset & mapping -> mapping
   start_new_program();
   ADD_STORAGE(struct string_assignment_storage);
   /* function(int:int) */
-  ADD_FUNCTION("`[]",f_string_assignment_index,tFunc(tInt,tInt),0);
+  ADD_FUNCTION2("`[]", f_string_assignment_index, tFunc(tInt,tInt), 0,
+		OPT_EXTERNAL_DEPEND);
   /* function(int,int:int) */
-  ADD_FUNCTION("`[]=",f_string_assignment_assign_index,tFunc(tInt tInt,tInt),0);
+  ADD_FUNCTION2("`[]=", f_string_assignment_assign_index,
+		tFunc(tInt tInt,tInt), 0, OPT_SIDE_EFFECT);
   set_init_callback(init_string_assignment_storage);
   set_exit_callback(exit_string_assignment_storage);
   string_assignment_program=end_program();