diff --git a/src/backend.cmod b/src/backend.cmod
index 19f80bc6104b6451617287ce614b1a03c83b3d1d..dc9185d119249cbafecb28bf18ccc6add4f01073 100644
--- a/src/backend.cmod
+++ b/src/backend.cmod
@@ -5,7 +5,7 @@
 */
 
 /*
- * $Id: backend.cmod,v 1.228 2008/06/28 12:06:29 per Exp $
+ * $Id: backend.cmod,v 1.229 2008/06/29 12:37:10 nilsson Exp $
  *
  * Backend object.
  */
@@ -2112,7 +2112,7 @@ PIKECLASS Backend
   }
 
   PIKEFUN void create()
-    flags ID_STATIC;
+    flags ID_PROTECTED;
   {
     struct Backend_struct *me = THIS;
 
diff --git a/src/builtin.cmod b/src/builtin.cmod
index b5a9ba8e54b6eabdc0881d14a7e2f4525e0b8daa..78691138d9e0c0ed33b41ba4ceffca5c3f97e5bd 100644
--- a/src/builtin.cmod
+++ b/src/builtin.cmod
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: builtin.cmod,v 1.216 2008/06/28 22:05:01 mast Exp $
+|| $Id: builtin.cmod,v 1.217 2008/06/29 12:37:10 nilsson Exp $
 */
 
 #include "global.h"
@@ -1407,7 +1407,7 @@ PIKECLASS backtrace_frame
 
   /* These are cleared when filename and lineno has been initialized
    * from them. */
-  PIKEVAR program prog flags ID_STATIC|ID_PRIVATE;
+  PIKEVAR program prog flags ID_PROTECTED|ID_PRIVATE;
   CVAR PIKE_OPCODE_T *pc;
 
   /* These two are considered to be uninitialized from prog, pc and
@@ -2190,8 +2190,8 @@ PIKECLASS multi_string_replace
 {
   CVAR struct replace_many_context ctx;
   /* NOTE: from and to are only kept for _encode()'s use. */
-  PIKEVAR array from flags ID_STATIC;
-  PIKEVAR array to flags ID_STATIC;
+  PIKEVAR array from flags ID_PROTECTED;
+  PIKEVAR array to flags ID_PROTECTED;
 
   /*! @decl void create(array(string)|mapping(string:string)|void from, @
    *!                   array(string)|string|void to)
@@ -2347,12 +2347,12 @@ PIKECLASS multi_string_replace
 PIKECLASS single_string_replace
 {
   CVAR SearchMojt mojt;
-  PIKEVAR string del flags ID_STATIC|ID_PRIVATE;
-  PIKEVAR string to flags ID_STATIC|ID_PRIVATE;
+  PIKEVAR string del flags ID_PROTECTED|ID_PRIVATE;
+  PIKEVAR string to flags ID_PROTECTED|ID_PRIVATE;
 
   EXTRA
   {
-    MAP_VARIABLE ("o", tObj, ID_STATIC|ID_PRIVATE,
+    MAP_VARIABLE ("o", tObj, ID_PROTECTED|ID_PRIVATE,
 		  single_string_replace_storage_offset +
 		  OFFSETOF (single_string_replace_struct, mojt.container),
 		  T_OBJECT);
@@ -2529,7 +2529,7 @@ PIKECLASS bootstring
   CVAR INT_TYPE base, tmin, tmax, skew, damp;
   CVAR INT_TYPE initial_bias, initial_n;
   CVAR p_wchar2 delim;
-  PIKEVAR string digits flags ID_STATIC|ID_PRIVATE;
+  PIKEVAR string digits flags ID_PROTECTED|ID_PRIVATE;
 
   static INT_TYPE bootstring_cp_to_digit(p_wchar2 ch)
   {
@@ -2754,7 +2754,7 @@ PIKECLASS bootstring
 		       int skew, int damp, 
 		       int initial_bias, int initial_n,
 		       int delim, string digits )
-    flags ID_STATIC;
+    flags ID_PROTECTED;
   {
     struct bootstring_struct *bs = THIS;
     if (base<2)
@@ -3333,7 +3333,7 @@ PIKECLASS List
    *!   Returns the number of elements in the list.
    */
   PIKEFUN int(0..) _sizeof()
-    flags ID_STATIC;
+    flags ID_PROTECTED;
   {
     push_int(THIS->num_elems);
   }
@@ -3346,7 +3346,7 @@ PIKECLASS List
    *!   @[sprintf()], @[lfun::_sprintf()]
    */
   PIKEFUN string _sprintf(int c, mapping(string:mixed)|void attr)
-    flags ID_STATIC;
+    flags ID_PROTECTED;
   {
     if (!THIS->num_elems) {
       push_constant_text("ADT.List(/* empty */)");
@@ -3494,7 +3494,7 @@ PIKECLASS List
    *!   Ought to reset the @[List] if called multiple times.
    */
   PIKEFUN void create(mixed ... values)
-    flags ID_STATIC;
+    flags ID_PROTECTED;
   {
     /* FIXME: Reset the list? */
     apply_current(f_List_append_fun_num, args);
@@ -3506,7 +3506,7 @@ PIKECLASS List
    */
   PIKECLASS _get_iterator
     program_flags PROGRAM_USES_PARENT;
-    flags ID_STATIC;
+    flags ID_PROTECTED;
   {
     CVAR struct pike_list_node *cur;
     CVAR INT32 ind;		/* Not meaningful, but requred by the API. */
@@ -3659,7 +3659,7 @@ PIKECLASS List
     }
 
     PIKEFUN int(0..1) `!()
-      flags ID_STATIC;
+      flags ID_PROTECTED;
     {
       pop_n_elems(args);
       push_int(!THIS->cur->next || !THIS->cur->prev);
diff --git a/src/errors.h b/src/errors.h
index 7e0552df01ccc34ad772771996297662717ab8e1..27fe4a584a877dc615fb032f4d0f19778e02fc07 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: errors.h,v 1.39 2008/05/27 01:39:44 mast Exp $
+|| $Id: errors.h,v 1.40 2008/06/29 12:37:10 nilsson Exp $
 */
 
 #ifdef ERR_DECLARE
@@ -113,17 +113,17 @@
 DECLARE_ERROR(generic, Generic, EMPTY ,
   ERR_VAR(struct pike_string *,tStr,PIKE_T_STRING,error_message)
   ERR_VAR(struct array *,tArray,PIKE_T_ARRAY,error_backtrace)
-  ERR_FUNC("cast",f_error_cast,tFunc(tString,tArray),ID_STATIC)
-  ERR_FUNC("`[]",f_error_index,tFunc(tInt01,tMixed),ID_STATIC)
+  ERR_FUNC("cast",f_error_cast,tFunc(tString,tArray),ID_PROTECTED)
+  ERR_FUNC("`[]",f_error_index,tFunc(tInt01,tMixed),ID_PROTECTED)
   ERR_FUNC("describe",f_error_describe,tFunc(tVoid,tString),0)
   ERR_FUNC_SAVE_ID (generic_err_message_fun, "message", f_error_message,
 		    tFunc(tVoid,tString), 0)
   ERR_FUNC_SAVE_ID (generic_err_backtrace_fun, "backtrace", f_error_backtrace,
 		    tFunc(tVoid,tArr(tMixed)),0)
   ERR_FUNC("_sprintf", f_error__sprintf,
-	   tFunc(tOr(tInt,tVoid) tOr(tMapping,tVoid),tString), ID_STATIC)
-  ERR_FUNC("_is_type", f_error__is_type, tFunc(tString, tInt01), ID_STATIC)
-  ERR_FUNC("create",f_error_create,tFunc(tStr tOr(tVoid,tArr(tMixed)),tVoid),ID_STATIC)
+	   tFunc(tOr(tInt,tVoid) tOr(tMapping,tVoid),tString), ID_PROTECTED)
+  ERR_FUNC("_is_type", f_error__is_type, tFunc(tString, tInt01), ID_PROTECTED)
+  ERR_FUNC("create",f_error_create,tFunc(tStr tOr(tVoid,tArr(tMixed)),tVoid),ID_PROTECTED)
 )
 
 DECLARE_ERROR(index, Index,
diff --git a/src/interpret_functions.h b/src/interpret_functions.h
index 37f921428b89cc18b9caf531c2fad412253b1607..0095d778d729746f441c0d49dafd98085cfd2ffe 100644
--- a/src/interpret_functions.h
+++ b/src/interpret_functions.h
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: interpret_functions.h,v 1.207 2008/05/31 10:54:29 grubba Exp $
+|| $Id: interpret_functions.h,v 1.208 2008/06/29 12:37:10 nilsson Exp $
 */
 
 /*
@@ -314,7 +314,7 @@ OPCODE1(F_LOOKUP_LFUN, "->lfun", 0, {
     int id = FIND_LFUN(p, arg1);
     if ((id != -1) &&
 	(!(p->identifier_references[id].id_flags &
-	   (ID_STATIC|ID_PRIVATE|ID_HIDDEN)))) {
+	   (ID_PROTECTED|ID_PRIVATE|ID_HIDDEN)))) {
       id += o->prog->inherits[Pike_sp[-1].subtype].identifier_level;
       low_object_index_no_free(&tmp, o, id);
     } else {
diff --git a/src/iterators.cmod b/src/iterators.cmod
index 434ae7ab1e8337edeb40d5e6417fefb0611f5af6..29ac83f9d6e48aac61b0eed95278bc10cbab9a65 100644
--- a/src/iterators.cmod
+++ b/src/iterators.cmod
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: iterators.cmod,v 1.69 2008/06/28 22:05:03 mast Exp $
+|| $Id: iterators.cmod,v 1.70 2008/06/29 12:37:10 nilsson Exp $
 */
 
 #include "global.h"
@@ -88,7 +88,7 @@ PIKECLASS Iterator
    *! function is typically protected.
    */
   PIKEFUN void create(void|mixed data)
-    flags ID_STATIC;
+    flags ID_PROTECTED;
     prototype;
   {}
 
@@ -98,7 +98,7 @@ PIKECLASS Iterator
    *! @expr{1@} otherwise.
    */
   PIKEFUN int(0..1) `!()
-    flags ID_STATIC;
+    flags ID_PROTECTED;
     prototype;
   {}
 
@@ -110,7 +110,7 @@ PIKECLASS Iterator
    *! throw an exception in that case.
    */
   PIKEFUN Iterator `+(int steps)
-    flags ID_STATIC|ID_OPTIONAL;
+    flags ID_PROTECTED|ID_OPTIONAL;
     prototype;
   {}
 
@@ -147,7 +147,7 @@ PIKECLASS Iterator
    */
   PIKEFUN Iterator `+=(int steps)
     prototype;
-    flags ID_STATIC|ID_OPTIONAL;
+    flags ID_PROTECTED|ID_OPTIONAL;
   {}
 
   /*! @decl optional Iterator `- (int steps)
@@ -158,7 +158,7 @@ PIKECLASS Iterator
    *! forward.
    */
   PIKEFUN int(0..1) `-(int steps)
-    flags ID_STATIC|ID_OPTIONAL;
+    flags ID_PROTECTED|ID_OPTIONAL;
     prototype;
   {}
 
@@ -887,7 +887,7 @@ PIKECLASS string_iterator
     }
 
   PIKEFUN int _search(string|int needle, int|void start)
-    flags ID_STATIC;
+    flags ID_PROTECTED;
     {
       if (!THIS->s)
 	Pike_error("No data to search.\n");
diff --git a/src/language.yacc b/src/language.yacc
index 9dbd056dce4d100ecf71d4c31f63e7c531afd19e..b70e2f6d3be6b493e2862afb94bff491b871d59e 100644
--- a/src/language.yacc
+++ b/src/language.yacc
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: language.yacc,v 1.439 2008/06/29 11:04:49 nilsson Exp $
+|| $Id: language.yacc,v 1.440 2008/06/29 12:37:10 nilsson Exp $
 */
 
 %pure_parser
@@ -1246,10 +1246,10 @@ modifier:
 
     }
   | TOK_FINAL_ID   { $$ = ID_FINAL | ID_INLINE; }
-  | TOK_STATIC     { $$ = ID_STATIC; }
+  | TOK_STATIC     { $$ = ID_PROTECTED; }
   | TOK_EXTERN     { $$ = ID_EXTERN; }
   | TOK_OPTIONAL   { $$ = ID_OPTIONAL; }
-  | TOK_PRIVATE    { $$ = ID_PRIVATE | ID_STATIC; }
+  | TOK_PRIVATE    { $$ = ID_PRIVATE | ID_PROTECTED; }
   | TOK_LOCAL_ID   { $$ = ID_INLINE; }
   | TOK_PUBLIC     { $$ = ID_PUBLIC; }
   | TOK_PROTECTED  { $$ = ID_PROTECTED; }
@@ -2195,7 +2195,7 @@ lambda: TOK_LAMBDA line_number_info implicit_identifier push_compiler_frame1
       type=compiler_pop_type();
       Pike_compiler->compiler_frame->current_function_number =
 	define_function(name, type,
-			ID_STATIC | ID_PRIVATE | ID_INLINE | ID_USED,
+			ID_PROTECTED | ID_PRIVATE | ID_INLINE | ID_USED,
 			IDENTIFIER_PIKE_FUNCTION, NULL,
 			(unsigned INT16)
 			(Pike_compiler->compiler_frame->opt_flags));
@@ -2268,7 +2268,7 @@ lambda: TOK_LAMBDA line_number_info implicit_identifier push_compiler_frame1
     f=dooptcode(name,
 		$8,
 		type,
-		ID_STATIC | ID_PRIVATE | ID_INLINE | ID_USED);
+		ID_PROTECTED | ID_PRIVATE | ID_INLINE | ID_USED);
 
 #ifdef PIKE_DEBUG
     if (f != Pike_compiler->compiler_frame->current_function_number) {
@@ -2396,7 +2396,7 @@ local_function: TOK_IDENTIFIER push_compiler_frame1 func_args
     dooptcode(i->name,
 	      $5,
 	      i->type,
-	      ID_STATIC | ID_PRIVATE | ID_INLINE);
+	      ID_PROTECTED | ID_PRIVATE | ID_INLINE);
 
     i->opt_flags = Pike_compiler->compiler_frame->opt_flags;
 
@@ -2530,7 +2530,7 @@ local_function2: optional_stars TOK_IDENTIFIER push_compiler_frame1 func_args
     dooptcode(i->name,
 	      $6,
 	      i->type,
-	      ID_STATIC | ID_PRIVATE | ID_INLINE);
+	      ID_PROTECTED | ID_PRIVATE | ID_INLINE);
 
     i->opt_flags = Pike_compiler->compiler_frame->opt_flags;
 
@@ -2660,7 +2660,7 @@ class: TOK_CLASS line_number_info optional_identifier
       s=make_shared_string(buffer);
       $3=mkstrnode(s);
       free_string(s);
-      $<number>0|=ID_STATIC | ID_PRIVATE | ID_INLINE;
+      $<number>0|=ID_PROTECTED | ID_PRIVATE | ID_INLINE;
     }
     /* fprintf(stderr, "LANGUAGE.YACC: CLASS start\n"); */
     if(Pike_compiler->compiler_pass==1)
@@ -2797,7 +2797,7 @@ class: TOK_CLASS line_number_info optional_identifier
 
 	Pike_compiler->compiler_frame->current_function_number=
 	  define_function(create_string, type,
-			  ID_INLINE | ID_STATIC,
+			  ID_INLINE | ID_PROTECTED,
 			  IDENTIFIER_PIKE_FUNCTION |
 			  (Pike_compiler->num_create_args < 0?IDENTIFIER_VARARGS:0),
 			  0,
@@ -2849,7 +2849,7 @@ class: TOK_CLASS line_number_info optional_identifier
 
 	/* Fifth: Define the function. */
 
-	f=dooptcode(create_string, create_code, type, ID_STATIC);
+	f=dooptcode(create_string, create_code, type, ID_PROTECTED);
 
 #ifdef PIKE_DEBUG
 	if(Pike_interpreter.recoveries &&
@@ -3519,7 +3519,7 @@ optional_block: /* EMPTY */ { $$=0; }
     f=dooptcode(name,
 		$5,
 		type,
-		ID_STATIC | ID_PRIVATE | ID_INLINE | ID_USED);
+		ID_PROTECTED | ID_PRIVATE | ID_INLINE | ID_USED);
 
     if(Pike_compiler->compiler_frame->lexical_scope & SCOPE_SCOPED) {
       $$ = mktrampolinenode(f,Pike_compiler->compiler_frame->previous);
@@ -3576,7 +3576,7 @@ implicit_modifiers:
       $$ = Pike_compiler->current_modifiers =
 	(THIS_COMPILATION->lex.pragmas & ID_MODIFIER_MASK);
     } else {
-      $$ = Pike_compiler->current_modifiers = ID_STATIC|ID_INLINE|ID_PRIVATE |
+      $$ = Pike_compiler->current_modifiers = ID_PROTECTED|ID_INLINE|ID_PRIVATE |
 	(THIS_COMPILATION->lex.pragmas & ID_MODIFIER_MASK);
     }
   }
diff --git a/src/object.c b/src/object.c
index ea1284404bc9491d1b573582d82fad94a1917c88..6c48d9521aeb2096af61756a0ac1f8a0cb56c202 100644
--- a/src/object.c
+++ b/src/object.c
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: object.c,v 1.298 2008/06/28 21:50:10 mast Exp $
+|| $Id: object.c,v 1.299 2008/06/29 12:37:10 nilsson Exp $
 */
 
 #include "global.h"
@@ -2703,14 +2703,14 @@ void init_object(void)
 
   start_new_program();
   offset=ADD_STORAGE(struct magic_index_struct);
-  MAP_VARIABLE("__obj", tObj, ID_STATIC,
+  MAP_VARIABLE("__obj", tObj, ID_PROTECTED,
 	       offset + OFFSETOF(magic_index_struct, o), T_OBJECT);
   ADD_FUNCTION("`()",f_magic_index,tFunc(tStr tOr(tVoid,tInt),tMix),0);
   magic_index_program=end_program();
 
   start_new_program();
   offset=ADD_STORAGE(struct magic_index_struct);
-  MAP_VARIABLE("__obj", tObj, ID_STATIC,
+  MAP_VARIABLE("__obj", tObj, ID_PROTECTED,
 	       offset + OFFSETOF(magic_index_struct, o), T_OBJECT);
   ADD_FUNCTION("`()",f_magic_set_index,
 	       tFunc(tStr tMix tOr(tVoid,tInt),tVoid),0);
@@ -2718,14 +2718,14 @@ void init_object(void)
 
   start_new_program();
   offset=ADD_STORAGE(struct magic_index_struct);
-  MAP_VARIABLE("__obj", tObj, ID_STATIC,
+  MAP_VARIABLE("__obj", tObj, ID_PROTECTED,
 	       offset + OFFSETOF(magic_index_struct, o), T_OBJECT);
   ADD_FUNCTION("`()",f_magic_indices,tFunc(tOr(tVoid,tInt),tArr(tStr)),0);
   magic_indices_program=end_program();
 
   start_new_program();
   offset=ADD_STORAGE(struct magic_index_struct);
-  MAP_VARIABLE("__obj", tObj, ID_STATIC,
+  MAP_VARIABLE("__obj", tObj, ID_PROTECTED,
 	       offset + OFFSETOF(magic_index_struct, o), T_OBJECT);
   ADD_FUNCTION("`()",f_magic_values,tFunc(tOr(tVoid,tInt),tArray),0);
   magic_values_program=end_program();
diff --git a/src/pike_search.c b/src/pike_search.c
index 6493620fd01f79e99824fb421976db821608e590..41627ef3b3cdade50b31a10b2abf7610bf7c84b4 100644
--- a/src/pike_search.c
+++ b/src/pike_search.c
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: pike_search.c,v 1.30 2008/06/23 16:02:25 mast Exp $
+|| $Id: pike_search.c,v 1.31 2008/06/29 12:37:10 nilsson Exp $
 */
 
 /* New memory searcher functions */
@@ -197,7 +197,7 @@ void init_pike_searching(void)
 	       pike_search_struct_offset + OFFSETOF(pike_mem_searcher,s),
 	       PIKE_T_STRING);
   pike_search_program=end_program();
-  add_program_constant("Search",pike_search_program,ID_STATIC);
+  add_program_constant("Search",pike_search_program,ID_PROTECTED);
 
   memsearch_cache=allocate_mapping(10);
   memsearch_cache->data->flags |= MAPPING_FLAG_WEAK;
diff --git a/src/program.c b/src/program.c
index 83c1baf41f112d92527c90c2ea48dfe45b9198ef..74a9f5976ac3c0dc040b8a78dc34ab0c4b052321 100644
--- a/src/program.c
+++ b/src/program.c
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: program.c,v 1.727 2008/06/28 21:50:10 mast Exp $
+|| $Id: program.c,v 1.728 2008/06/29 12:37:10 nilsson Exp $
 */
 
 #include "global.h"
@@ -2211,7 +2211,7 @@ void fixate_program(void)
       my_yyerror("Missing definition for local function %S.",
 		 fun->name);
     }
-    if (funp->id_flags & ID_STATIC) continue;
+    if (funp->id_flags & ID_PROTECTED) continue;
     add_to_identifier_index(i);
   }
   fsort_program_identifier_index(p->identifier_index,
@@ -3461,7 +3461,7 @@ struct program *end_first_pass(int finish)
 		       Pike_compiler->init_node,
 		       mknode(F_RETURN,mkintnode(0),0)),
 		function_type_string,
-		ID_STATIC);
+		ID_PROTECTED);
     Pike_compiler->init_node=0;
   } else if (finish == 2) {
     /* Called from decode_value(). */
@@ -5548,7 +5548,7 @@ INT32 define_function(struct pike_string *name,
        *
        * FIXME: Force PRIVATE?
        */
-      flags |= ID_STATIC;
+      flags |= ID_PROTECTED;
       free_type(symbol_type);
       free_string(symbol);
     }
@@ -5795,14 +5795,14 @@ int add_ext_ref(struct program_state *state, struct program *target, int i)
   for (r = state->new_program->identifier_references, j = 0;
        j < state->new_program->num_identifier_references;
        j++, r++) {
-    if (((r->id_flags & (ID_PARENT_REF|ID_STATIC|ID_PRIVATE|ID_HIDDEN)) ==
-	 ID_PARENT_REF|ID_STATIC|ID_PRIVATE|ID_HIDDEN) &&
+    if (((r->id_flags & (ID_PARENT_REF|ID_PROTECTED|ID_PRIVATE|ID_HIDDEN)) ==
+	 ID_PARENT_REF|ID_PROTECTED|ID_PRIVATE|ID_HIDDEN) &&
 	(r->identifier_offset == i) &&
 	(!(r->inherit_offset))) {
       return j;
     }
   }
-  ref.id_flags = ID_PARENT_REF|ID_STATIC|ID_PRIVATE|ID_HIDDEN;
+  ref.id_flags = ID_PARENT_REF|ID_PROTECTED|ID_PRIVATE|ID_HIDDEN;
   ref.identifier_offset = i;
   ref.inherit_offset = 0;
   add_to_identifier_references(ref);
@@ -5895,7 +5895,7 @@ int really_low_find_shared_string_identifier(struct pike_string *name,
   {
     funp = prog->identifier_references + i;
     if(funp->id_flags & ID_HIDDEN) continue;
-    if(funp->id_flags & ID_STATIC)
+    if(funp->id_flags & ID_PROTECTED)
       if(!(flags & SEE_STATIC))
 	continue;
     fun = ID_FROM_PTR(prog, funp);
@@ -6154,7 +6154,7 @@ struct array *program_indices(struct program *p)
   for (e = p->num_identifier_references; e--; ) {
     struct identifier *id;
     if (p->identifier_references[e].id_flags &
-	(ID_HIDDEN|ID_STATIC|ID_PRIVATE)) {
+	(ID_HIDDEN|ID_PROTECTED|ID_PRIVATE)) {
       continue;
     }
     id = ID_FROM_INT(p, e);
@@ -6193,7 +6193,7 @@ struct array *program_values(struct program *p)
   for(e = p->num_identifier_references; e--; ) {
     struct identifier *id;
     if (p->identifier_references[e].id_flags &
-	(ID_HIDDEN|ID_STATIC|ID_PRIVATE)) {
+	(ID_HIDDEN|ID_PROTECTED|ID_PRIVATE)) {
       continue;
     }
     id = ID_FROM_INT(p, e);
@@ -9102,7 +9102,7 @@ static void compile_compiler(void)
 	       tFunc(tOr(tStr, tVoid) tOr(tObj, tVoid)
 		     tOr(tInt, tVoid) tOr(tInt, tVoid)
 		     tOr(tPrg(tObj), tVoid) tOr(tObj, tVoid), tVoid),
-	       ID_STATIC);
+	       ID_PROTECTED);
 
   ADD_FUNCTION("get_compilation_handler",
 	       f_compilation_get_compilation_handler,
@@ -9133,7 +9133,7 @@ static void compile_compiler(void)
 		     tType(tFunction)), 0);
 
   ADD_FUNCTION("_sprintf", f_compilation__sprintf,
-	       tFunc(tInt tOr(tMap(tStr, tMix), tVoid), tStr), ID_STATIC);
+	       tFunc(tInt tOr(tMap(tStr, tMix), tVoid), tStr), ID_PROTECTED);
 
   start_new_program();
 
@@ -10343,7 +10343,7 @@ static int low_implements(struct program *a, struct program *b)
   {
     struct identifier *bid;
     int i;
-    if (b->identifier_references[e].id_flags & (ID_STATIC|ID_HIDDEN))
+    if (b->identifier_references[e].id_flags & (ID_PROTECTED|ID_HIDDEN))
       continue;		/* Skip protected & hidden */
     bid = ID_FROM_INT(b,e);
     if(s == bid->name) continue;	/* Skip __INIT */
@@ -10424,7 +10424,7 @@ static int low_is_compatible(struct program *a, struct program *b)
   {
     struct identifier *bid;
     int i;
-    if (b->identifier_references[e].id_flags & (ID_STATIC|ID_HIDDEN))
+    if (b->identifier_references[e].id_flags & (ID_PROTECTED|ID_HIDDEN))
       continue;		/* Skip protected & hidden */
 
     /* FIXME: What if they aren't protected & hidden in a? */
@@ -10546,7 +10546,7 @@ void yyexplain_not_compatible(int severity_level,
   {
     struct identifier *bid;
     int i;
-    if (b->identifier_references[e].id_flags & (ID_STATIC|ID_HIDDEN))
+    if (b->identifier_references[e].id_flags & (ID_PROTECTED|ID_HIDDEN))
       continue;		/* Skip protected & hidden */
 
     /* FIXME: What if they aren't protected & hidden in a? */
@@ -10608,7 +10608,7 @@ void yyexplain_not_implements(int severity_level,
   {
     struct identifier *bid;
     int i;
-    if (b->identifier_references[e].id_flags & (ID_STATIC|ID_HIDDEN))
+    if (b->identifier_references[e].id_flags & (ID_PROTECTED|ID_HIDDEN))
       continue;		/* Skip protected & hidden */
     bid = ID_FROM_INT(b,e);
     if(s == bid->name) continue;	/* Skip __INIT */
diff --git a/src/signal_handler.c b/src/signal_handler.c
index 0c8b4a1303dfee221d809be9343d10d244879e1b..efcac7c4b1a30b994f807a8194e9205af3a8542f 100644
--- a/src/signal_handler.c
+++ b/src/signal_handler.c
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: signal_handler.c,v 1.332 2008/05/01 21:27:51 mast Exp $
+|| $Id: signal_handler.c,v 1.333 2008/06/29 12:37:11 nilsson Exp $
 */
 
 #include "global.h"
@@ -4843,7 +4843,7 @@ void init_signals(void)
 #ifndef __NT__
   PIKE_MAP_VARIABLE("__callback", OFFSETOF(pid_status, callback),
 		    tFunc(tObjIs_PROCESS,tVoid), T_MIXED,
-		    ID_STATIC|ID_PRIVATE);
+		    ID_PROTECTED|ID_PRIVATE);
 #endif /* !__NT__ */
   set_init_callback(init_pid_status);
   set_exit_callback(exit_pid_status);
@@ -4889,7 +4889,7 @@ void init_signals(void)
 
   start_new_program();
   Pike_compiler->new_program->flags |= PROGRAM_USES_PARENT;
-  ADD_FUNCTION("`[]", f_proc_reg_index, tFunc(tMix, tInt), ID_STATIC);
+  ADD_FUNCTION("`[]", f_proc_reg_index, tFunc(tMix, tInt), ID_PROTECTED);
   end_class("Registers", 0);
 
 #endif /* 0 */
diff --git a/src/threads.c b/src/threads.c
index 016d4187018623f2c8130c7faf5e6c2374a80e73..6950350965364400edff09567070c3e8aa6ed50c 100644
--- a/src/threads.c
+++ b/src/threads.c
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: threads.c,v 1.258 2008/06/28 22:05:04 mast Exp $
+|| $Id: threads.c,v 1.259 2008/06/29 12:37:11 nilsson Exp $
 */
 
 #include "global.h"
@@ -2282,7 +2282,7 @@ void th_init(void)
 		    mutex_key_offset + OFFSETOF(key_storage, owner_obj),
 		    tObjIs_THREAD_ID, T_OBJECT, 0);
   PIKE_MAP_VARIABLE("_mutex", mutex_key_offset + OFFSETOF(key_storage, mutex_obj),
-		    tObjIs_THREAD_MUTEX, T_OBJECT, ID_STATIC|ID_PRIVATE);
+		    tObjIs_THREAD_MUTEX, T_OBJECT, ID_PROTECTED|ID_PRIVATE);
   set_init_callback(init_mutex_key_obj);
   set_exit_callback(exit_mutex_key_obj);
   mutex_key=Pike_compiler->new_program;
@@ -2346,7 +2346,7 @@ void th_init(void)
   ADD_FUNCTION("get",f_thread_local_get,tFunc(tNone,tMix),0);
   ADD_FUNCTION("set",f_thread_local_set,tFunc(tSetvar(1,tMix),tVar(1)),0);
   ADD_FUNCTION("create", f_thread_local_create,
-	       tFunc(tVoid,tVoid), ID_STATIC);
+	       tFunc(tVoid,tVoid), ID_PROTECTED);
 #ifdef PIKE_DEBUG
   set_gc_check_callback(gc_check_thread_local);
 #endif
@@ -2363,7 +2363,7 @@ void th_init(void)
 		    tMix, T_MIXED, 0);
   ADD_FUNCTION("create",f_thread_create,
 	       tFuncV(tNone,tMixed,tVoid),
-	       ID_STATIC);
+	       ID_PROTECTED);
   ADD_FUNCTION("backtrace",f_thread_backtrace,tFunc(tNone,tArray),0);
   ADD_FUNCTION("wait",f_thread_id_result,tFunc(tNone,tMix),0);
   ADD_FUNCTION("status",f_thread_id_status,tFunc(tNone,tInt),0);