diff --git a/src/opcodes.c b/src/opcodes.c
index 87e4dd6859625a2ca557951259efe37859d9326e..2c8cf736dd55dea1ca1c11b7b1da3b08dabd0876 100644
--- a/src/opcodes.c
+++ b/src/opcodes.c
@@ -2,11 +2,11 @@
 || 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: opcodes.c,v 1.162 2004/02/03 20:40:13 nilsson Exp $
+|| $Id: opcodes.c,v 1.163 2004/09/18 20:18:20 per Exp $
 */
 
 #include "global.h"
-RCSID("$Id: opcodes.c,v 1.162 2004/02/03 20:40:13 nilsson Exp $");
+RCSID("$Id: opcodes.c,v 1.163 2004/09/18 20:18:20 per Exp $");
 #include "constants.h"
 #include "interpret.h"
 #include "opcodes.h"
@@ -241,7 +241,7 @@ void present_runned(struct instr_counter *d, int depth, int maxdepth)
 
 #define LEXER
 
-struct keyword instr_names[]=
+const struct keyword instr_names[]=
 {
 #ifndef PIKE_PRECOMPILER
 #include "interpret_protos.h"
@@ -296,7 +296,7 @@ struct instr instrs[F_MAX_INSTR - F_OFFSET];
 size_t instrs_checksum;
 #endif /* PIKE_USE_MACHINE_CODE */
 
-char *low_get_f_name(int n, struct program *p)
+const char *low_get_f_name(int n, struct program *p)
 {
   static char buf[30];
   
@@ -320,7 +320,7 @@ char *low_get_f_name(int n, struct program *p)
   return buf;
 }
 
-char *get_f_name(int n)
+const char *get_f_name(int n)
 {
   if (Pike_fp && Pike_fp->context.prog)
     return low_get_f_name(n, Pike_fp->context.prog);
@@ -355,7 +355,7 @@ char *get_opcode_name(PIKE_INSTR_T n)
 }
 #endif /* HAVE_COMPUTED_GOTO */
 
-char *get_token_name(int n)
+const char *get_token_name(int n)
 {
   static char buf[30];
   if (n<F_MAX_INSTR && instrs[n-F_OFFSET].name)
diff --git a/src/opcodes.h b/src/opcodes.h
index 360360a859e75b6911692383e669440e1eb740d5..098b921ff42986da19de92a2cefa4ff75ad89009 100644
--- a/src/opcodes.h
+++ b/src/opcodes.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: opcodes.h,v 1.39 2004/03/12 21:56:52 mast Exp $
+|| $Id: opcodes.h,v 1.40 2004/09/18 20:18:20 per Exp $
 */
 
 #ifndef OPCODES_H
@@ -16,9 +16,9 @@
 
 struct keyword
 {
-  char *word;
-  int token;
-  int flags;
+  const char *word;
+  const int token;
+  const int flags;
 #ifdef PIKE_USE_MACHINE_CODE
   void *address;
 #endif
@@ -93,7 +93,7 @@ struct instr
   long compiles;
 #endif
   int flags;
-  char *name;
+  const char *name;
 #ifdef PIKE_USE_MACHINE_CODE
   void *address;
 #endif
@@ -281,14 +281,14 @@ enum Pike_opcodes
 #undef OPCODE1_ALIAS
 #undef OPCODE2_ALIAS
 
-char *low_get_f_name(int n,struct program *p);
-char *get_f_name(int n);
+const char *low_get_f_name(int n,struct program *p);
+const char *get_f_name(int n);
 #ifdef HAVE_COMPUTED_GOTO
-char *get_opcode_name(PIKE_INSTR_T n);
+const char *get_opcode_name(PIKE_INSTR_T n);
 #else /* !HAVE_COMPUTED_GOTO */
 #define get_opcode_name(n) get_f_name(n + F_OFFSET)
 #endif /* HAVE_COMPUTED_GOTO */
-char *get_token_name(int n);
+const char *get_token_name(int n);
 void init_opcodes(void);
 void exit_opcodes(void);
 
diff --git a/src/pike_search.c b/src/pike_search.c
index 8df768370c2dade50c3de0d48df8396e90238b19..44cf276d95a69eca3c9de0425e241edb6185d51b 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.22 2004/06/29 12:04:36 nilsson Exp $
+|| $Id: pike_search.c,v 1.23 2004/09/18 20:19:15 per Exp $
 */
 
 /* New memory searcher functions */
@@ -54,7 +54,7 @@ static void nil_search_free(void *data) {}
 #define memchr_search_free nil_search_free
 
 
-static struct SearchMojtVtable nil_search_vtable = {
+static const struct SearchMojtVtable nil_search_vtable = {
   (SearchMojtFunc0) nil_search,
   (SearchMojtFunc1) nil_search,
   (SearchMojtFunc2) nil_search,
@@ -178,6 +178,7 @@ PMOD_EXPORT SearchMojt compile_memsearcher(PCHARP needle,
 #ifdef PIKE_DEBUG
   Pike_fatal("Illegal shift\n");
 #endif
+  /* NOTREACHED */
 }
 
 PMOD_EXPORT SearchMojt simple_compile_memsearcher(struct pike_string *str)
diff --git a/src/pike_search.h b/src/pike_search.h
index d28f50be19e70dcdc74f31c892836544e15b519c..62dd0de3b69efd527b62ec50c636cd81a457cdca 100644
--- a/src/pike_search.h
+++ b/src/pike_search.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: pike_search.h,v 1.8 2004/03/07 22:55:49 nilsson Exp $
+|| $Id: pike_search.h,v 1.9 2004/09/18 20:19:15 per Exp $
 */
 
 #ifndef PIKE_SEARCH_H
@@ -64,7 +64,7 @@ struct SearchMojtVtable
 
 typedef struct SearchMojt
 {
-  struct SearchMojtVtable *vtab;
+  const struct SearchMojtVtable *vtab;
   void *data;
 } SearchMojt;
 
diff --git a/src/pike_search_engine.c b/src/pike_search_engine.c
index c9f5f1ca5615e446fe1f090528586a0383d42169..4ac99762aee8023a8f51095d67bf53d53699c1d5 100644
--- a/src/pike_search_engine.c
+++ b/src/pike_search_engine.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_engine.c,v 1.11 2003/04/23 13:43:08 jhs Exp $
+|| $Id: pike_search_engine.c,v 1.12 2004/09/18 20:19:41 per Exp $
 */
 
 /*
@@ -42,7 +42,7 @@ PCHARP PxC3(NAME,NSHIFT,N)(void *s,	\
   return haystack;	/* NOT_REACHED */	\
 }						\
 						\
-static struct SearchMojtVtable PxC3(NAME,NSHIFT,_vtable) = {	\
+static const struct SearchMojtVtable PxC3(NAME,NSHIFT,_vtable) = {	\
   (SearchMojtFunc0)PxC3(NAME,NSHIFT,0),		\
   (SearchMojtFunc1)PxC3(NAME,NSHIFT,1),			\
   (SearchMojtFunc2)PxC3(NAME,NSHIFT,2),			\