diff --git a/lib/master.pike.in b/lib/master.pike.in
index b0a0258d83b7af189dc98590c895af04caf657d8..a1309eac62f4bd5f110d2285ee6188d0bc58b56e 100644
--- a/lib/master.pike.in
+++ b/lib/master.pike.in
@@ -2238,7 +2238,6 @@ protected void create()
   add_constant("__dirnode", dirnode);
   add_constant("__joinnode", joinnode);
 
-  add_constant("strlen", sizeof);
   add_constant("write", write);
   add_constant("werror", werror);
   // To make it possible to overload get_dir and file_stat later on.
diff --git a/src/operators.c b/src/operators.c
index 2dcbc8019b64562d422ce15c0d25569fae3911ba..42cedd9db92d48c35ab649a65b4f033403036f14 100644
--- a/src/operators.c
+++ b/src/operators.c
@@ -5919,6 +5919,10 @@ multiset & mapping -> mapping
 	    tFunc(tOr5(tStr,tMultiset,tArray,tMapping,tObj),tIntPos),
 	    OPT_TRY_OPTIMIZE, optimize_sizeof, generate_sizeof);
 
+  ADD_EFUN2("strlen", f_sizeof,
+            tFunc(tStr,tIntPos), OPT_TRY_OPTIMIZE, optimize_sizeof,
+            generate_sizeof);
+
   /* function(mixed,mixed ...:mixed) */
   ADD_EFUN2("`()",f_call_function,tFuncV(tMix,tMix,tMix),OPT_SIDE_EFFECT | OPT_EXTERNAL_DEPEND,0,generate_call_function);