diff --git a/src/program.c b/src/program.c
index 48d443475ec5e995af6920e5081faf69d09406f0..d8c28753c9677d8dfe15759f5f64ad0f49695917 100644
--- a/src/program.c
+++ b/src/program.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: program.c,v 1.268 2000/08/30 21:58:17 grubba Exp $");
+RCSID("$Id: program.c,v 1.269 2000/08/31 12:23:34 grubba Exp $");
 #include "program.h"
 #include "object.h"
 #include "dynamic_buffer.h"
@@ -2642,7 +2642,7 @@ INT32 define_function(struct pike_string *name,
 
       funp->identifier_flags=function_flags;
 
-      funp->opt_flags = opt_flags;
+      funp->opt_flags &= opt_flags;
 
       free_string(funp->type);
       copy_shared_string(funp->type, type);