diff --git a/lib/7.0/include/simulate.h b/lib/7.0/include/simulate.h
new file mode 100644
index 0000000000000000000000000000000000000000..404014dbbac8d09cd63d1ff291fc072d59e2ccf3
--- /dev/null
+++ b/lib/7.0/include/simulate.h
@@ -0,0 +1,5 @@
+#define list multiset
+#define perror(X) werror(X)
+#define efun predef
+#define regexp(X,Y) filter((X),Regexp(Y)->match)
+import Simulate;
diff --git a/lib/7.0/modules/Simulate.pmod b/lib/7.0/modules/Simulate.pmod
new file mode 100644
index 0000000000000000000000000000000000000000..1b0bcaf3df1322b17dbebeb2f48bb04d4d7f0ca5
--- /dev/null
+++ b/lib/7.0/modules/Simulate.pmod
@@ -0,0 +1,69 @@
+#pike 7.1
+
+inherit Array;
+inherit String;
+inherit Process;
+
+#define error(X) throw( ({ (X), backtrace()[0..sizeof(backtrace())-2] }) )
+
+int member_array(mixed needle,array(mixed) haystack,int|void start)
+{
+  return search(haystack,needle,start);
+}
+
+object previous_object()
+{
+  int e;
+  array(array(mixed)) trace;
+  object o,ret;
+  trace=backtrace();
+  o=function_object(trace[-2][2]);
+  for(e=sizeof(trace)-3;e>=0;e--)
+  {
+    if(!trace[e][2]) continue;
+    ret=function_object(trace[e][2]);
+    if(o!=ret) return ret;
+  }
+  return 0;
+}
+
+function this_function()
+{
+  return backtrace()[-2][2];
+}
+
+
+function get_function(object o, string a)
+{
+  mixed ret;
+  ret=o[a];
+  return functionp(ret) ? ret : 0;
+}
+
+array(string) map_regexp(array(string) s, string reg)
+{
+  
+  object(Regexp) regexp = Regexp(reg);
+  s=filter(s,regexp->match);
+  return s;
+}
+
+constant PI = 3.1415926535897932384626433832795080;
+function all_efuns = all_constants;
+function explode = `/;
+function filter_array = filter;
+function map_array = map;
+function implode = `*;
+function m_indices = indices;
+function m_sizeof = sizeof;
+function m_values = values;
+function strstr = search;
+function sum = `+;
+function add_efun = add_constant;
+function l_sizeof = sizeof;
+function listp = multisetp;
+function mklist = mkmultiset;
+function aggregate_list = aggregate_multiset;
+#if efun(gethostname)
+function query_host_name=gethostname;
+#endif
diff --git a/lib/7.0/modules/__default.pmod b/lib/7.0/modules/__default.pmod
new file mode 100644
index 0000000000000000000000000000000000000000..a9ae988fcee784f9532dddffcf812742a177cd9c
--- /dev/null
+++ b/lib/7.0/modules/__default.pmod
@@ -0,0 +1,49 @@
+/* Compatibility module */
+
+#pike 7.1
+
+mapping FScache=set_weak_flag(([]),1);
+
+class FS
+{
+  mixed old;
+
+  array(int) file_stat(string s, void|int x)
+    {
+      if(object y=old(s, x))
+	return (array)y;
+      return 0;
+    }
+
+  void create(function o)
+    {
+      old=o;
+      FScache[o]=file_stat;
+    }
+}
+
+string _typeof(mixed x)
+{
+  return sprintf("%O",predef::_typeof(x));
+}
+
+mapping m_delete(mapping m, mixed x)
+{
+  predef::m_delete(m,x);
+  return m;
+}
+
+mapping(string:mixed) all_constants()
+{
+  mapping(string:mixed) ret=predef::all_constants()+([]);
+
+  /* support overloading */
+  ret->file_stat=FScache[ret->file_stat] || FS(ret->file_stat)->file_stat;
+
+  /* does not support overloading (yet) */
+  ret->all_constants=all_constants;
+  ret->_typeof=_typeof;
+  ret->m_delete=m_delete;
+
+  return ret;
+}
diff --git a/lib/master.pike.in b/lib/master.pike.in
index 8f49134dfa81bb273b25b1342d49847883053d25..5ea377cb0d36ee53de7ce21ca7775164288f1201 100644
--- a/lib/master.pike.in
+++ b/lib/master.pike.in
@@ -1,6 +1,6 @@
 /* -*- Pike -*-
  *	
- * $Id: master.pike.in,v 1.131 2000/09/24 01:37:01 per Exp $
+ * $Id: master.pike.in,v 1.132 2000/09/26 18:58:56 hubbe Exp $
  * 
  * Master-file for Pike.
  *
@@ -9,6 +9,7 @@
 
 // Some configurable parameters useful for debugging
 
+#pike __VERSION__
 #define PIKE_AUTORELOAD
 
 // Used by describe_backtrace() et al.
@@ -94,9 +95,6 @@ string basename(string x)
 #define UNDEFINED (([])[0])
 #define error(X) throw( ({ (X), backtrace()/*[0..sizeof(backtrace())-2]*/ }) )
 
-array(string) pike_include_path=({});
-array(string) pike_module_path=({});
-array(string) pike_program_path=({});
 int want_warnings = PIKE_WARNINGS;
 
 #ifdef PIKE_AUTORELOAD
@@ -131,9 +129,15 @@ mapping(string:int) load_time=([]);
 
 #endif
 
+int compat_major=-1;
+int compat_minor=-1;
+
 program compile_string(string data, void|string name, object|void handler)
 {
-  return compile(cpp(data,name||"-", 0, handler), handler);
+  return compile(cpp(data,name||"-", 0, handler, compat_major, compat_minor),
+		 handler,
+		 compat_major,
+		 compat_minor);
 }
 
 
@@ -149,7 +153,8 @@ program compile_file(string file, object|void handler)
 {
   AUTORELOAD_CHECK_FILE(file);
   return compile(cpp(master_read_file(file),
-		     file, 1, handler), handler);
+		     file, 1, handler, compat_major, compat_minor), handler,
+		 compat_major, compat_minor );
 }
 
 
@@ -259,49 +264,6 @@ string normalize_path( string X )
 #endif
 }
 
-void add_include_path(string tmp)
-{
-  tmp=normalize_path(combine_path_with_cwd(tmp));
-  pike_include_path-=({tmp});
-  pike_include_path=({tmp})+pike_include_path;
-}
-
-void remove_include_path(string tmp)
-{
-  tmp=normalize_path(combine_path_with_cwd(tmp));
-  pike_include_path-=({tmp});
-}
-
-void add_module_path(string tmp)
-{
-  tmp=normalize_path(combine_path_with_cwd(tmp));
-  pike_module_path-=({tmp});
-  pike_module_path=({tmp})+pike_module_path;
-}
-
-
-void remove_module_path(string tmp)
-{
-  tmp=normalize_path(combine_path_with_cwd(tmp));
-  pike_module_path-=({tmp});
-}
-
-
-void add_program_path(string tmp)
-{
-  tmp=normalize_path(combine_path_with_cwd(tmp));
-  pike_program_path-=({tmp});
-  pike_program_path=({tmp})+pike_program_path;
-}
-
-
-void remove_program_path(string tmp)
-{
-  tmp=normalize_path(combine_path_with_cwd(tmp));
-  pike_program_path-=({tmp});
-}
-
-
 mapping (string:program) programs=(["/master":object_program(this_object())]);
 
 #define capitalize(X) (upper_case((X)[..0])+(X)[1..])
@@ -901,59 +863,190 @@ mixed handle_import(string what, string|void current_file, object|void handler)
   return fc[path]=dirnode(path);
 }
 
-mixed resolv_base(string identifier, string|void current_file)
+
+
+multiset no_resolv = (<>);
+class CompatResolver
 {
-  array(mixed) tmp = ({});
-  foreach(pike_module_path, string path)
-  {
-    string file=combine_path(path,identifier);
-    if(mixed ret=findmodule(file)) {
-      if ((objectp(ret)) &&
-	  (ret->is_resolv_dirnode || ret->is_resolv_joinnode)) {
-	if (mixed new_ret = ret->_module_value) {
-	  ret = new_ret;
-	}
-	tmp += ({ ret });
-      } else {
-	if (mixed new_ret = ret->_module_value) {
-	  ret = new_ret;
+  array(string) pike_include_path=({});
+  array(string) pike_module_path=({});
+  array(string) pike_program_path=({});
+  int want_warnings = PIKE_WARNINGS;
+  string ver;
+
+  void create(mixed v)
+    {
+      ver=(string)v;
+    }
+
+  void add_include_path(string tmp)
+    {
+      tmp=normalize_path(combine_path_with_cwd(tmp));
+      pike_include_path-=({tmp});
+      pike_include_path=({tmp})+pike_include_path;
+    }
+  
+  void remove_include_path(string tmp)
+    {
+      tmp=normalize_path(combine_path_with_cwd(tmp));
+      pike_include_path-=({tmp});
+    }
+  
+  void add_module_path(string tmp)
+    {
+      tmp=normalize_path(combine_path_with_cwd(tmp));
+      pike_module_path-=({tmp});
+      pike_module_path=({tmp})+pike_module_path;
+    }
+  
+  
+  void remove_module_path(string tmp)
+    {
+      tmp=normalize_path(combine_path_with_cwd(tmp));
+      pike_module_path-=({tmp});
+    }
+  
+  
+  void add_program_path(string tmp)
+    {
+      tmp=normalize_path(combine_path_with_cwd(tmp));
+      pike_program_path-=({tmp});
+      pike_program_path=({tmp})+pike_program_path;
+    }
+  
+  
+  void remove_program_path(string tmp)
+    {
+      tmp=normalize_path(combine_path_with_cwd(tmp));
+      pike_program_path-=({tmp});
+    }
+
+  mapping get_default_module()
+    {
+      /* This is an ugly kluge to avoid an infinite recursion.
+       * The infinite recursion occurs because this function is
+       * called for every file when the compat_major/minor is set.
+       * This kluge could cause problems with threads if the
+       * compiler was threaded. -Hubbe
+       */
+      int saved_compat_minor=compat_minor;
+      int saved_compat_major=compat_major;
+      compat_minor=-1;
+      compat_major=-1;
+
+      mixed x;
+      mixed err =catch {
+	if(x=resolv("__default.all_constants")) x=x();
+      };
+
+      compat_major=saved_compat_major;
+      compat_minor=saved_compat_minor;
+      if(err) throw(err);
+      return x;
+    }
+
+  mixed resolv_base(string identifier, string|void current_file)
+    {
+      array(mixed) tmp = ({});
+      foreach(pike_module_path, string path)
+	{
+	  string file=combine_path(path,identifier);
+	  if(mixed ret=findmodule(file)) {
+	    if ((objectp(ret)) &&
+		(ret->is_resolv_dirnode || ret->is_resolv_joinnode)) {
+	      if (mixed new_ret = ret->_module_value) {
+		ret = new_ret;
+	      }
+	      tmp += ({ ret });
+	    } else {
+	      if (mixed new_ret = ret->_module_value) {
+		ret = new_ret;
+	      }
+	      if (!sizeof(tmp)) {
+		return ret;
+	      } else {
+		// Ignore
+		werror(sprintf("Ignoring file %O: %t for identifier %O\n",
+			       file, ret, identifier));
+		continue;
+	      }
+	    }
+	  }
 	}
-	if (!sizeof(tmp)) {
-	  return ret;
-	} else {
-	  // Ignore
-	  werror(sprintf("Ignoring file %O: %t for identifier %O\n",
-			 file, ret, identifier));
-	  continue;
+      if (sizeof(tmp)) {
+	if (sizeof(tmp) == 1) {
+	  return(tmp[0]);
 	}
+	return joinnode(tmp);
       }
+      return UNDEFINED;
     }
-  }
-  if (sizeof(tmp)) {
-    if (sizeof(tmp) == 1) {
-      return(tmp[0]);
+  
+  mapping resolv_cache = set_weak_flag( ([]), 1 );
+  mixed resolv(string identifier, string|void current_file)
+    {
+      if( no_resolv[ identifier ] )
+	return UNDEFINED;
+
+      mixed ret;
+      string id=identifier+":"+(current_file ? dirname(current_file) : "-");
+      if( !zero_type (ret = resolv_cache[id]) )
+	return ret == ZERO_TYPE ? UNDEFINED : resolv_cache[id];
+      array(string) tmp=identifier/".";
+      ret=resolv_base(tmp[0]);
+      foreach(tmp[1..],string index) ret=ret[index];
+      resolv_cache[id] = zero_type (ret) ? ZERO_TYPE : ret;
+      return ret;
+    }
+
+  /* This function is called whenever an #include directive is encountered
+   * it receives the argument for #include and should return the file name
+   * of the file to include
+   */
+  string handle_include(string f,
+			string current_file,
+			int local_include)
+    {
+      array(string) tmp;
+      string path;
+      
+      if(local_include)
+      {
+	tmp=EXPLODE_PATH(current_file);
+	tmp[-1]=f;
+	path=combine_path_with_cwd(tmp*"/");
+      }
+      else
+      {
+	foreach(pike_include_path, path)
+	  {
+	    path=combine_path(path,f);
+	    if(master_file_stat(fakeroot(path)))
+	      break;
+	    else
+	      path=0;
+	  }
+	
+      }
+      
+      return path;
+    }
+  
+  string read_include(string f)
+    {
+      AUTORELOAD_CHECK_FILE(f)
+	return master_read_file(f);
+    }
+
+
+  string _sprintf()
+    {
+      return sprintf("CompatResolver(%s)",ver);
     }
-    return joinnode(tmp);
-  }
-  return UNDEFINED;
-}
-multiset no_resolv = (<>);
-mapping resolv_cache = set_weak_flag( ([]), 1 );
-mixed resolv(string identifier, string|void current_file)
-{
-  if( no_resolv[ identifier ] )
-    return UNDEFINED;
-  mixed ret;
-  string id=identifier+":"+(current_file ? dirname(current_file) : "-");
-  if( !zero_type (ret = resolv_cache[id]) )
-    return ret == ZERO_TYPE ? UNDEFINED : resolv_cache[id];
-  array(string) tmp=identifier/".";
-  ret=resolv_base(tmp[0]);
-  foreach(tmp[1..],string index) ret=ret[index];
-  resolv_cache[id] = zero_type (ret) ? ZERO_TYPE : ret;
-  return ret;
 }
 
+inherit CompatResolver;
+
 // These are useful if you want to start other Pike processes
 // with the same options as this one was started with.
 string _pike_file_name;
@@ -1021,6 +1114,7 @@ void _main(array(string) orig_argv, array(string) env)
     }
     
     q=tmp->find_all_options(argv,({
+      ({"compat_version",tmp->HAS_ARG,({"-V","--compat"})}),
       ({"version",tmp->NO_ARG,({"-v","--version"})}),
       ({"help",tmp->NO_ARG,({"-h","--help"})}),
       ({"execute",tmp->HAS_ARG,({"-e","--execute"})}),
@@ -1049,6 +1143,9 @@ void _main(array(string) orig_argv, array(string) env)
     {
       switch(q[i][0])
       {
+	case "compat_version":
+	  sscanf(q[i][1],"%d.%d",compat_major,compat_minor);
+	  break;
 #ifdef PIKE_AUTORELOAD
       case "autoreload":
 	autoreload_on++;
@@ -1165,7 +1262,7 @@ void _main(array(string) orig_argv, array(string) env)
 	
       case "execute":
 	  random_seed(time() + (getpid() * 0x11111111));
-	compile_string("#include <simulate.h>\nmixed create(){"+opts[1]+";}")();
+	compile_string("mixed create(){"+opts[1]+";}")();
 	exit(0);
 
       case "preprocess":
@@ -1382,46 +1479,6 @@ string decode_charset(string data, string charset)
 }
 
 
-/* This function is called whenever an #include directive is encountered
- * it receives the argument for #include and should return the file name
- * of the file to include
- * Note that previous_object cannot be trusted in ths function, because
- * the compiler calls this function.
- */
-string handle_include(string f,
-		      string current_file,
-		      int local_include)
-{
-  array(string) tmp;
-  string path;
-
-  if(local_include)
-  {
-    tmp=EXPLODE_PATH(current_file);
-    tmp[-1]=f;
-    path=combine_path_with_cwd(tmp*"/");
-  }
-  else
-  {
-    foreach(pike_include_path, path)
-      {
-	path=combine_path(path,f);
-	if(master_file_stat(fakeroot(path)))
-	  break;
-	else
-	  path=0;
-      }
-    
-  }
-
-  return path;
-}
-
-string read_include(string f)
-{
-  AUTORELOAD_CHECK_FILE(f)
-  return master_read_file(f);
-}
 
 class Describer
 {
@@ -1897,3 +1954,134 @@ class Codec
     o->_decode(data);
   }
 }
+
+
+class Version
+{
+  int major;
+  int minor;
+  void create(int maj, int min)
+    {
+      major=maj;
+      minor=min;
+    }
+
+#define CMP(X)  (major - (X)->major) || (minor - (X)->minor)
+  
+  int `<(Version v) { return CMP(v) < 0; }
+  int `>(Version v) { return CMP(v) > 0; }
+  int `==(Version v) { return CMP(v)== 0; }
+  int _hash() { return major * 4711 + minor ; }
+
+  string _sprintf() { return sprintf("%d.%d",major,minor); }
+  mixed cast(string type)
+    {
+      switch(type)
+      {
+	case "string":
+	  return sprintf("%d.%d",major,minor);
+      }
+    }
+}
+
+Version currentversion=Version(__MAJOR__,__MINOR__);
+mapping(Version:CompatResolver) compat_handler_cache=set_weak_flag( ([]), 1);
+
+CompatResolver get_compilation_handler(int major, int minor)
+{
+  CompatResolver ret;
+  
+  Version v=Version(major,minor);
+
+  if(v > currentversion)
+  {
+    /* do we want to make an error if major.minor > __MAJOR__.__MINOR ? */
+    return 0;
+  }
+  
+  if(!zero_type(ret=compat_handler_cache[v])) return ret;
+
+  array(Version) available=({});
+
+#if "�share_prefix�"[0]!='�'
+  foreach(get_dir("�share_prefix�"), string ver)
+    {
+      if(sscanf(ver,"%d.%d",int maj, int min))
+      {
+	Version x=Version(maj, min) ;
+	if(x >= v)
+	  available|=({ x });
+      }
+    }
+#endif
+
+#if "�lib_prefix�"[0]!='�'
+  foreach(get_dir("�lib_prefix�"), string ver)
+    {
+      if(sscanf(ver,"%d.%d",int maj, int min))
+      {
+	Version x=Version(maj, min) ;
+	if(x >= v)
+	  available|=({ x });
+      }
+    }
+#endif
+
+  sort(available);
+
+#ifndef RESOLVER_HACK
+  /* We need to define RESOLVER_HACK when we add
+   * version-specific stuff in the CompatResolver.
+   * As long as all the compatibility is done in the
+   * module dierctories, RESOLVER_HACK can be undefined
+   */
+
+  /* No compat needed */
+  if(!sizeof(available))
+  {
+    compat_handler_cache[v]=0;
+    return 0;
+  }
+
+  /* Same as available[0] */
+  if(ret=compat_handler_cache[available[0]])
+    return compat_handler_cache[v]=ret;
+#endif
+
+  ret=CompatResolver(v);
+  if( v < Version(0,6))
+    ret->pike_module_path+=({"."});
+
+  foreach(available, Version v)
+    {
+      string base;
+#if "�lib_prefix�"[0]!='�'
+      base=combine_path("�lib_prefix�",sprintf("%s",v));
+      ret->add_module_path(combine_path(base,"modules"));
+      ret->add_include_path(combine_path(base,"include"));
+#endif
+
+#if "�share_prefix�"[0]!='�'
+      base=combine_path("�share_prefix�",sprintf("%s",v));
+      ret->add_module_path(combine_path(base,"modules"));
+      ret->add_include_path(combine_path(base,"include"));
+#endif
+    }
+
+  /* Add default paths */
+  map(pike_module_path,ret->add_module_path);
+  map(pike_include_path,ret->add_include_path);
+
+  compat_handler_cache[v] = ret;
+
+#ifndef RESOLVER_HACK
+  compat_handler_cache[available[0]] = ret; /* may be equal to 'v' */
+#endif
+
+  return ret;
+}
+
+string _sprintf()
+{
+  return "master()";
+}
diff --git a/lib/modules/ADT.pmod/Heap.pike b/lib/modules/ADT.pmod/Heap.pike
index b9adc3c05d6167bf44e02cfc8b8fe56a75f30614..8875e90d46bcddaee1ab2ee57f0ff5a2692e7b14 100644
--- a/lib/modules/ADT.pmod/Heap.pike
+++ b/lib/modules/ADT.pmod/Heap.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 #define SWAP(X,Y) do{ mixed tmp=values[X]; values[X]=values[Y]; values[Y]=tmp; }while(0)
 
 static private array values=allocate(10);
diff --git a/lib/modules/ADT.pmod/Priority_queue.pike b/lib/modules/ADT.pmod/Priority_queue.pike
index 4754fba320deea9ef9023cb910328a8a3c748a28..525d57038600cde42fdd9a92a6e53553d0715bb0 100644
--- a/lib/modules/ADT.pmod/Priority_queue.pike
+++ b/lib/modules/ADT.pmod/Priority_queue.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 inherit .Heap;
 
 class elem {
diff --git a/lib/modules/ADT.pmod/Queue.pike b/lib/modules/ADT.pmod/Queue.pike
index 5a19a27a456ac094c6cef644cea77347f7cb50d7..893cea31526e03fe7859e157058d8277c53d37ca 100644
--- a/lib/modules/ADT.pmod/Queue.pike
+++ b/lib/modules/ADT.pmod/Queue.pike
@@ -1,8 +1,9 @@
-/* $Id: Queue.pike,v 1.1 1999/11/29 18:24:24 per Exp $
+/* $Id: Queue.pike,v 1.2 2000/09/26 18:59:09 hubbe Exp $
  *
  * A simple FIFO queue. 
  */
 
+#pike __VERSION__
 #define QUEUE_SIZE 100
 
 array l;
diff --git a/lib/modules/ADT.pmod/Table.pmod b/lib/modules/ADT.pmod/Table.pmod
index 00735be2bdc5ef15ff0d3788204ed70480ab3896..b2cf41c663e09bc7be88aa7768605a0afa4eac42 100644
--- a/lib/modules/ADT.pmod/Table.pmod
+++ b/lib/modules/ADT.pmod/Table.pmod
@@ -1,6 +1,7 @@
 // Table.pmod by Fredrik Noring, 1998
-// $Id: Table.pmod,v 1.12 1999/12/21 20:12:43 noring Exp $
+// $Id: Table.pmod,v 1.13 2000/09/26 18:59:09 hubbe Exp $
 
+#pike __VERSION__
 #define TABLE_ERR(msg) throw(({ "(Table) "+msg+"\n", backtrace() }))
 
 class table {
diff --git a/lib/modules/ADT.pmod/struct.pike b/lib/modules/ADT.pmod/struct.pike
index c6af49b0786bc81d2039c11fddb723a8747b3e19..1b7d9ccdd3cc15ba22c8035ae0ed07d06faa0ece 100644
--- a/lib/modules/ADT.pmod/struct.pike
+++ b/lib/modules/ADT.pmod/struct.pike
@@ -3,6 +3,7 @@
  * New version, taken from Protocols.X
  */
 
+#pike __VERSION__
 #if 0
 #include "error.h"
 #else
diff --git a/lib/modules/Array.pmod b/lib/modules/Array.pmod
index de28caa84d1ecd2c9556caecefade767be7568f5..326ee6cd691537f98f39da8124c3616872c5a77d 100644
--- a/lib/modules/Array.pmod
+++ b/lib/modules/Array.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 #define error(X) throw( ({ (X), backtrace()[0..sizeof(backtrace())-2] }) )
 
 constant diff = __builtin.diff;
diff --git a/lib/modules/Cache.pmod/Data.pike b/lib/modules/Cache.pmod/Data.pike
index cb0bf6efbe4b0bd7b3df8662d1cea9115403a913..a50a4f484f0312e6a55a1f0626ed339ab772b8ab 100644
--- a/lib/modules/Cache.pmod/Data.pike
+++ b/lib/modules/Cache.pmod/Data.pike
@@ -4,6 +4,7 @@
  * (C) 2000 Roxen IS
  */
 
+#pike __VERSION__
 
 int atime=0; //last-access time.
 int ctime=0; //creation-time
diff --git a/lib/modules/Cache.pmod/Policy.pmod/Base.pike b/lib/modules/Cache.pmod/Policy.pmod/Base.pike
index 93f17d2866fb108cdf9aa0ccf1b019104d8e4c5b..06e212f0e8a4e76967e20bdea30cd25472c60754 100644
--- a/lib/modules/Cache.pmod/Policy.pmod/Base.pike
+++ b/lib/modules/Cache.pmod/Policy.pmod/Base.pike
@@ -5,9 +5,11 @@
  *
  * All Storage-related class must MUST implement this method.
  *
- * $Id: Base.pike,v 1.1 2000/07/02 20:14:39 kinkie Exp $
+ * $Id: Base.pike,v 1.2 2000/09/26 18:59:10 hubbe Exp $
  */
 
+#pike __VERSION__
+
 void expire(Cache.Storage storage) {
   throw("Override this!");
 }
diff --git a/lib/modules/Cache.pmod/Policy.pmod/Multiple.pike b/lib/modules/Cache.pmod/Policy.pmod/Multiple.pike
index ec3109f10178a5b2d94a35a29caaf3bcf70b4c01..20ff94554c013691692b13f794368a608d7449dd 100644
--- a/lib/modules/Cache.pmod/Policy.pmod/Multiple.pike
+++ b/lib/modules/Cache.pmod/Policy.pmod/Multiple.pike
@@ -3,9 +3,11 @@
  * by Francesco Chemolli <kinkie@roxen.com>
  * (C) 2000 Roxen IS
  *
- * $Id: Multiple.pike,v 1.1 2000/07/02 20:14:47 kinkie Exp $
+ * $Id: Multiple.pike,v 1.2 2000/09/26 18:59:11 hubbe Exp $
  */
 
+#pike __VERSION__
+
 inherit Cache.Policy.Base;
 private array(Cache.Policy.Base) my_policies;
 
diff --git a/lib/modules/Cache.pmod/Policy.pmod/Null.pike b/lib/modules/Cache.pmod/Policy.pmod/Null.pike
index 7bdc966a6defc5d0d7798ab1b00eb1771ae57152..be9ef096091a854a562ee3fce5171da37bf0f164 100644
--- a/lib/modules/Cache.pmod/Policy.pmod/Null.pike
+++ b/lib/modules/Cache.pmod/Policy.pmod/Null.pike
@@ -3,12 +3,14 @@
  * by Francesco Chemolli <kinkie@roxen.com>
  * (C) 2000 Roxen IS
  *
- * $Id: Null.pike,v 1.1 2000/08/07 17:56:07 kinkie Exp $
+ * $Id: Null.pike,v 1.2 2000/09/26 18:59:11 hubbe Exp $
  *
  * This is a policy manager that doesn't actually expire anything.
  * It is useful in multilevel and/or network-based caches.
  */
 
+#pike __VERSION__
+
 void expire (Cache.Storage storage) {
   /* empty */
 }
diff --git a/lib/modules/Cache.pmod/Policy.pmod/Sized.pike b/lib/modules/Cache.pmod/Policy.pmod/Sized.pike
index 3e294930aeba193d90af6816ecd9f2c5fd572afb..c775466dddfa73d21101ccddc7f3b44b5568f611 100644
--- a/lib/modules/Cache.pmod/Policy.pmod/Sized.pike
+++ b/lib/modules/Cache.pmod/Policy.pmod/Sized.pike
@@ -3,9 +3,11 @@
  * by Francesco Chemolli <kinkie@roxen.com>
  * (C) 2000 Roxen IS
  *
- * $Id: Sized.pike,v 1.1 2000/07/02 20:14:56 kinkie Exp $
+ * $Id: Sized.pike,v 1.2 2000/09/26 18:59:11 hubbe Exp $
  */
 
+#pike __VERSION__
+
 inherit Cache.Policy.Base;
 //watermarks
 int max_size=0; //in bytes
diff --git a/lib/modules/Cache.pmod/Policy.pmod/Timed.pike b/lib/modules/Cache.pmod/Policy.pmod/Timed.pike
index 8e1d236e4b1a88aea30ac8a226e1146400124119..e6f522861b92d8043916ffb13e2342ab9a25ebd5 100644
--- a/lib/modules/Cache.pmod/Policy.pmod/Timed.pike
+++ b/lib/modules/Cache.pmod/Policy.pmod/Timed.pike
@@ -3,9 +3,11 @@
  * by Francesco Chemolli <kinkie@roxen.com>
  * (C) 2000 Roxen IS
  *
- * $Id: Timed.pike,v 1.1 2000/07/02 20:15:10 kinkie Exp $
+ * $Id: Timed.pike,v 1.2 2000/09/26 18:59:12 hubbe Exp $
  */
 
+#pike __VERSION__
+
 //TODO: use the preciousness somehow.
 // idea: expire if (now-atime)*cost < ktime
 
diff --git a/lib/modules/Cache.pmod/Storage.pmod/Base.pike b/lib/modules/Cache.pmod/Storage.pmod/Base.pike
index f4385f38ef36b891d89db3784d003a6aca9736ed..949ed3210bcc2338fa0cbb4158623641519e3a79 100644
--- a/lib/modules/Cache.pmod/Storage.pmod/Base.pike
+++ b/lib/modules/Cache.pmod/Storage.pmod/Base.pike
@@ -3,11 +3,13 @@
  * by Francesco Chemolli <kinkie@roxen.com>
  * (C) 2000 Roxen IS
  *
- * $Id: Base.pike,v 1.2 2000/07/05 21:33:33 kinkie Exp $
+ * $Id: Base.pike,v 1.3 2000/09/26 18:59:12 hubbe Exp $
  *
  * All storage managers must provide these methods.
  */
 
+#pike __VERSION__
+
 #define T() throw( ({"override this", backtrace()}))
 
 // The next two functions are an iterator over the cache. There is an
diff --git a/lib/modules/Cache.pmod/Storage.pmod/Gdbm.pike b/lib/modules/Cache.pmod/Storage.pmod/Gdbm.pike
index c81e7f95b631bb7f68f39a9ce1c829614f5d6a57..cb1ced8772a95a35c6ede761aeb886fd971de66c 100644
--- a/lib/modules/Cache.pmod/Storage.pmod/Gdbm.pike
+++ b/lib/modules/Cache.pmod/Storage.pmod/Gdbm.pike
@@ -3,7 +3,7 @@
  * by Francesco Chemolli <kinkie@roxen.com>
  * (C) 2000 Roxen IS
  *
- * $Id: Gdbm.pike,v 1.2 2000/07/05 21:36:03 kinkie Exp $
+ * $Id: Gdbm.pike,v 1.3 2000/09/26 18:59:12 hubbe Exp $
  *
  * This storage manager provides the means to save data to memory.
  * In this manager I'll add reference documentation as comments to
@@ -12,6 +12,8 @@
  * Settings will be added later.
  */
 
+#pike __VERSION__
+
 //after this many deletion ops, the databases will be compacted.
 #define CLUTTERED 100
 
diff --git a/lib/modules/Cache.pmod/Storage.pmod/Memory.pike b/lib/modules/Cache.pmod/Storage.pmod/Memory.pike
index 6ae4a972952e62b80792d18e08c22e645e1e983c..a39856fffb9c28c84c3a120c18f5259e8eb8cd1f 100644
--- a/lib/modules/Cache.pmod/Storage.pmod/Memory.pike
+++ b/lib/modules/Cache.pmod/Storage.pmod/Memory.pike
@@ -3,7 +3,7 @@
  * by Francesco Chemolli <kinkie@roxen.com>
  * (C) 2000 Roxen IS
  *
- * $Id: Memory.pike,v 1.2 2000/07/05 21:37:25 kinkie Exp $
+ * $Id: Memory.pike,v 1.3 2000/09/26 18:59:13 hubbe Exp $
  *
  * This storage manager provides the means to save data to memory.
  * In this manager I'll add reference documentation as comments to
@@ -12,6 +12,8 @@
  * Settings will be added later.
  */
 
+#pike __VERSION__
+
 class Data {
 
   inherit Cache.Data;
diff --git a/lib/modules/Cache.pmod/Storage.pmod/MySQL.pike b/lib/modules/Cache.pmod/Storage.pmod/MySQL.pike
index d9495e12e4141067da3d412a786a452804d26883..4dde0116f7c1c6e3e404ccae5c7881d77a396842 100644
--- a/lib/modules/Cache.pmod/Storage.pmod/MySQL.pike
+++ b/lib/modules/Cache.pmod/Storage.pmod/MySQL.pike
@@ -3,7 +3,7 @@
  * by Francesco Chemolli <kinkie@roxen.com>
  * (C) 2000 Roxen IS
  *
- * $Id: MySQL.pike,v 1.1 2000/08/07 17:59:57 kinkie Exp $
+ * $Id: MySQL.pike,v 1.2 2000/09/26 18:59:13 hubbe Exp $
  *
  * This storage manager provides the means to save data to an SQL-based 
  * backend.
@@ -17,6 +17,8 @@
  * 
  */
 
+#pike __VERSION__
+
 #define MAX_KEY_SIZE "255"
 #define CREATION_QUERY "create table cache ( \
 cachekey varchar(" MAX_KEY_SIZE ") not null primary key, \
diff --git a/lib/modules/Cache.pmod/Storage.pmod/Yabu.pike b/lib/modules/Cache.pmod/Storage.pmod/Yabu.pike
index fdfa828669e11d4e29630f138e63382adead3dea..c3b028acf5eee52db26a7251cb31bdf4a71285ab 100644
--- a/lib/modules/Cache.pmod/Storage.pmod/Yabu.pike
+++ b/lib/modules/Cache.pmod/Storage.pmod/Yabu.pike
@@ -3,11 +3,13 @@
  * by Francesco Chemolli <kinkie@roxen.com>
  * (C) 2000 Roxen IS
  *
- * $Id: Yabu.pike,v 1.2 2000/07/05 21:38:56 kinkie Exp $
+ * $Id: Yabu.pike,v 1.3 2000/09/26 18:59:13 hubbe Exp $
  *
  * Settings will be added later.
  */
 
+#pike __VERSION__
+
 #define CLUTTERED 200
 
 Yabu.Table db, metadb;
diff --git a/lib/modules/Cache.pmod/cache.pike b/lib/modules/Cache.pmod/cache.pike
index ff1cd80c9ecfced7cc8fff5fc3930ec1dfdfc946..9eee24f57899c6f569dedd0ee93a76e97fe062d6 100644
--- a/lib/modules/Cache.pmod/cache.pike
+++ b/lib/modules/Cache.pmod/cache.pike
@@ -3,7 +3,7 @@
  * by Francesco Chemolli <kinkie@roxen.com>
  * (C) 2000 Roxen IS
  *
- * $Id: cache.pike,v 1.2 2000/07/05 21:32:58 kinkie Exp $
+ * $Id: cache.pike,v 1.3 2000/09/26 18:59:10 hubbe Exp $
  *
  * This module serves as a front-end to different kinds of caching system
  * It uses two helper objects to actually store data, and to determine
@@ -11,6 +11,8 @@
  * will be added in time, or at least this is the plan.
  */
 
+#pike __VERSION__
+
 #if constant(thread_create)
 #define do_possibly_threaded_call thread_create
 #else
diff --git a/lib/modules/Calendar.pmod/Austrian.pmod b/lib/modules/Calendar.pmod/Austrian.pmod
index d001c27a6d9d12f7d2a09dbe41de6c7408e83aff..5ba0ead59f009df4a119cd77f9c9448a5bfb3432 100644
--- a/lib/modules/Calendar.pmod/Austrian.pmod
+++ b/lib/modules/Calendar.pmod/Austrian.pmod
@@ -9,6 +9,8 @@
 //!	purposes. 
 //!
 
+#pike __VERSION__
+
 inherit Calendar.ISO:ISO;
 
 import ".";
diff --git a/lib/modules/Calendar.pmod/Calendar.pike b/lib/modules/Calendar.pmod/Calendar.pike
index adbdb9854d492d72e7bb47f819b944868309412f..b4c7a2683f740ff3e0bf357e2c0fc5a91b21fcec 100644
--- a/lib/modules/Calendar.pmod/Calendar.pike
+++ b/lib/modules/Calendar.pmod/Calendar.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 import ".";
 
 //! module Calendar
diff --git a/lib/modules/Calendar.pmod/Coptic.pmod b/lib/modules/Calendar.pmod/Coptic.pmod
index 968e48c21d3b5f8179fbbb142effa3ee3041ea0e..bd656c612f3395e5889294b0f3cbfc59a20fc84a 100644
--- a/lib/modules/Calendar.pmod/Coptic.pmod
+++ b/lib/modules/Calendar.pmod/Coptic.pmod
@@ -18,6 +18,8 @@
 //!	with the <ref>Gregorian</ref> calendar, which is odd.
 //! 	
 
+#pike __VERSION__
+
 import ".";
 // inherit some rules from Gregorian, like week numbering
 inherit Gregorian:Gregorian;
diff --git a/lib/modules/Calendar.pmod/Discordian.pmod b/lib/modules/Calendar.pmod/Discordian.pmod
index 3c2b08db8cbede7ee623bd5dddd2eefdb2857393..9f7787510ddd4adc58a5b40cccbffb425142c0b4 100644
--- a/lib/modules/Calendar.pmod/Discordian.pmod
+++ b/lib/modules/Calendar.pmod/Discordian.pmod
@@ -25,6 +25,8 @@
 
 // the discordian calendar follows the gregorian years, very practical ;)
 
+#pike __VERSION__
+
 import ".";
 inherit Gregorian:Gregorian;
 
diff --git a/lib/modules/Calendar.pmod/Event.pmod b/lib/modules/Calendar.pmod/Event.pmod
index c16e52562278196ab1078acd63097a09671753d7..c9509dd124465f47ac2ec2e2b93d761b2e614ae5 100644
--- a/lib/modules/Calendar.pmod/Event.pmod
+++ b/lib/modules/Calendar.pmod/Event.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 import ".";
 constant TimeRange=TimeRanges.TimeRange;
 
diff --git a/lib/modules/Calendar.pmod/Gregorian.pmod b/lib/modules/Calendar.pmod/Gregorian.pmod
index a26b244be0edea63c8494a298ae4aee6d7b70277..ecc5cb4dc0aeb5d4f567df652cc64d825c96cd18 100644
--- a/lib/modules/Calendar.pmod/Gregorian.pmod
+++ b/lib/modules/Calendar.pmod/Gregorian.pmod
@@ -8,6 +8,8 @@
 //!	in most of europe.
 //!
 
+#pike __VERSION__
+
 import ".";
 inherit YMD:YMD;
 
diff --git a/lib/modules/Calendar.pmod/ISO.pmod b/lib/modules/Calendar.pmod/ISO.pmod
index d2a6d84058320c5e7ac3a647928f853b7dff77dc..4bb9062fb96eb68dcf7d310d31fa8802158bd478 100644
--- a/lib/modules/Calendar.pmod/ISO.pmod
+++ b/lib/modules/Calendar.pmod/ISO.pmod
@@ -10,6 +10,8 @@
 //! inherits Gregorian
 //!
 
+#pike __VERSION__
+
 import ".";
 inherit Gregorian:Gregorian;
 
diff --git a/lib/modules/Calendar.pmod/Islamic.pmod b/lib/modules/Calendar.pmod/Islamic.pmod
index 6b2ea40abdf6876008471a288a03f08947677e81..a3fabd1ca0a3ab2790c4d2d39f59807f63ce2489 100644
--- a/lib/modules/Calendar.pmod/Islamic.pmod
+++ b/lib/modules/Calendar.pmod/Islamic.pmod
@@ -23,6 +23,8 @@
 //!	years are "AH", anno Hegirac.
 //!	
 
+#pike __VERSION__
+
 import ".";
 inherit YMD:YMD;
 
diff --git a/lib/modules/Calendar.pmod/Julian.pmod b/lib/modules/Calendar.pmod/Julian.pmod
index 1e2c90b05dbf713bd5a0a99b0b02aa14a5689e98..092dafc8aac2c3ea3e487d06dbbabbc459ee8797 100644
--- a/lib/modules/Calendar.pmod/Julian.pmod
+++ b/lib/modules/Calendar.pmod/Julian.pmod
@@ -1,47 +1,37 @@
-//!
-//! module Calendar
-//! submodule Julian
-//! inherits YMD
-//!
-//! 	This is the Julian calendar, conjured up by
-//!	the old Romans when their calendar were just too
-//!	wierd. It was used by the christians as so far
-//!	as the 18th century in some parts of the world.
-//!	(Especially the protestantic and orthodox parts.)
-//!
-//! note:
-//!	Don't confuse the <i>julian day</i> with the Julian
-//!	calendar. The former is just a linear numbering of days,
-//!	used in the Calendar module as a common unit for
-//!	absolute time.
-
-import ".";
-inherit Gregorian:Gregorian;
-
-string calendar_name() { return "Julian"; }
-
-static int year_leap_year(int y) 
-{ 
-   return !((y)%4);
-}
+#pike __VERSION__
+
+inherit Calendar.Gregorian;
 
-// [y,yjd]
-static array year_from_julian_day(int jd)
+class Year
 {
-   int d=jd-1721058;
+  inherit Calendar.Gregorian.Year;
+
+  int julian_day(int d) // jd%7 gives weekday, mon=0, sun=6
+  {
+    return 1721424 + d + (36525*(y-1))/100;
+  }
 
-   int quad=d/1461;
-   int quad_year=max( (d%1461-1)/365, 0);
+  int leap()
+  {
+    return !(y%4);
+  }
 
-   return 
-   ({
-      quad*4+quad_year,
-      1721058+1461*quad+365*quad_year+!!quad_year
-   });
 }
 
-static int julian_day_from_year(int y)
+class Day
 {
-   y--;
-   return 1721424+y*365+y/4;
+  inherit Calendar.Gregorian.Day;
+
+  void create(int ... arg)
+  {
+    if (!sizeof(arg))
+    {
+      int jd = Calendar.Gregorian.Day()->julian_day()-1721424;
+      y = jd*100/36525+1;
+      d = jd-(y-1)*36525/100;
+    }
+    else
+      ::create(@arg);
+  }
+
 }
diff --git a/lib/modules/Calendar.pmod/Language.pmod b/lib/modules/Calendar.pmod/Language.pmod
index 6110728708378a16f3cc4cc6568b60cd60786f42..1dde37968d3b194a896551ee98b97707ff5cfb71 100644
--- a/lib/modules/Calendar.pmod/Language.pmod
+++ b/lib/modules/Calendar.pmod/Language.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 import ".";
 
 static string flat(string s)
diff --git a/lib/modules/Calendar.pmod/Namedays.pmod b/lib/modules/Calendar.pmod/Namedays.pmod
index 42be2a93469709ae294e40d045f0b3e3d9212dce..71e26d31420fc8cffeb194ca433ce0cb663ac02b 100644
--- a/lib/modules/Calendar.pmod/Namedays.pmod
+++ b/lib/modules/Calendar.pmod/Namedays.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 import ".";
 inherit Event;
 
diff --git a/lib/modules/Calendar.pmod/Roman.pmod b/lib/modules/Calendar.pmod/Roman.pmod
index a0c5121b48c16bf1ee48fbe3ac43523a662ccdcd..6ed209e1644cb0afbe724771883c92672a877184 100644
--- a/lib/modules/Calendar.pmod/Roman.pmod
+++ b/lib/modules/Calendar.pmod/Roman.pmod
@@ -6,6 +6,7 @@
 //! ie, one with years, months, weeks and days
 //!
 
+#pike __VERSION__
 #pragma strict_types
 
 import ".";
diff --git a/lib/modules/Calendar.pmod/Ruleset.pike b/lib/modules/Calendar.pmod/Ruleset.pike
index 38352c88fba8ef04e18823249e07b0765ad328c1..379ad7a0a027532f969f59058fa3683e49ffacb6 100644
--- a/lib/modules/Calendar.pmod/Ruleset.pike
+++ b/lib/modules/Calendar.pmod/Ruleset.pike
@@ -2,6 +2,9 @@
 //! subclass Ruleset
 //!	This is the container class for rules.
 
+
+#pike __VERSION__
+
 class Timezone
 {
    constant is_timezone=1;
diff --git a/lib/modules/Calendar.pmod/Stardate.pmod b/lib/modules/Calendar.pmod/Stardate.pmod
index d81099120599e7354bbef06cc11204f2e0629662..47b4abb797024ad1451ef64dd9e1fb6451616f5d 100644
--- a/lib/modules/Calendar.pmod/Stardate.pmod
+++ b/lib/modules/Calendar.pmod/Stardate.pmod
@@ -1,305 +1,108 @@
-//! module Calendar
 //! submodule Stardate
-//!	This implements TNG stardates. 
+//!	time unit: TNGDate
 
-import ".";
+//! class TNGDate
+//!	implements ST:TNG stardates
+//!	can be used as create argument to Day 
 
-inherit TimeRanges;
+#pike __VERSION__
 
-static constant TNGSTARPERJULIAN=1000.0/365.2425;
-static constant TNGSTARPERSECOND=TNGSTARPERJULIAN/86400;
-static constant TNG0JULIAN=2569518.5;
-static constant TNG0UNIX=11139552000;
-
-string calendar_name() { return "Stardate"; }
-
-function(mixed...:cTick) Tick=cTick;
-class cTick
+class TNGDate
 {
-   inherit TimeRange;
+   inherit Calendar._TimeUnit;
+
+   // 40759.5  2363-10-05  2584405
+   // 47391.2  2370-05-23  2586827
 
-   constant is_stardate=1;
+   // 50893.5  2373-11-23  2588107
 
-   float tick;
-   float len;
+   //  6631.7  ----------  2422 
+   // 10134.0  ----------  3702
+   //  1000.0  ----------  365.2425
+   //     0.0      -  -    2569519
+#define TNGSTARPERJULIAN (1000.0/365.2425)
 
-//! method void create(mixed ...)
-//! method void create(int|float date)
-//! method void create()
-//!	Apart from the standard creation methods
-//!	(julian day, etc), you can create a stardate
-//!	from the stardate number. The length
-//!	of the period will then be zero.
-//!
-//!	You can also omit any arguments to create now.
-//!
-//! known bugs:
-//!	Since the precision is limited to the float type
-//!	of pike you can get non-precise results:
-//!
-//!     <pre>
-//!	> Calendar.Second(Calendar.Stardate.Day(Calendar.Year()));
-//!	Result: Second(Fri 31 Dec 1999 23:59:18 CET - Sun 31 Dec 2000 23:59:18 CET)
-//!	</pre>
+//-- variables ------------------------------------------------------
 
+   float jd;
+   float tics;
+   
+//-- standard methods -----------------------------------------------
 
-   void create(mixed ...args)
+   void create(int|float|object ... day)
    {
-      switch (sizeof(args))
+      float jd;
+      if (!sizeof(day))
+	 day=({Calendar.Gregorian.Second()});
+      else if (floatp(day[0]))
       {
-	 case 4:
-      // internal
-	    if (args[0]=="stardate")
+	 from_stardate(day[0]);
+	 return;
+      }
+      if (!intp(day[0]))
+      {
+	 object o=day[0];
+
+	 if (o->julian_day || o->julian_day_f)
+	    jd=(float)(o->julian_day_f||o->julian_day)();
+	 else // dig
+	    if (o->day) // larger
 	    {
-	       rules=args[1];
-	       tick=args[2];
-	       len=args[3];
-	       return;
+	       o=o->day(0);
+	       if (o->julian_day_f)
+		  jd=o->julian_day_f();
+	       else if (o->julian_day)
+		  jd=(float)o->julian_day();
+	       else
+		  ; // error, like
 	    }
-	    break;
-	 case 1:
-	    if (intp(args[0]) || floatp(args[0]))
+	    else // smaller
 	    {
-	       rules=default_rules;
-	       tick=(float)args[0];
-	       len=0.0;
-	       return;
+	       float z=1.0;
+	       while (sizeof(o->greater()))
+	       {
+		  string name=o->is();
+		  o=o[o->greater()[0]]();
+		  z*=o["number_of_"+name+"s"]();
+		  if (o->julian_day_f || o->julian_day) 
+		  {
+		     jd=(o->julian_day||o->julian_day_f)()/z;
+		     break;
+		  }
+	       }
 	    }
-	    break;
-	 case 0:
-	    rules=default_rules;
-	    create_unixtime_default(time());
-	    return;
-      }
-      rules=default_rules;
-      ::create(@args);
-   }
-
-   static void create_unixtime(int unixtime,int seconds)
-   {
-      tick=(unixtime-TNG0UNIX)*TNGSTARPERSECOND;
-      len=seconds*TNGSTARPERSECOND;
-   }
-
-   static void create_unixtime_default(int unixtime)
-   {
-      tick=(unixtime-TNG0UNIX)*TNGSTARPERSECOND;
-      len=0.0;
-   }
-
-   static void create_julian_day(int|float jd)
-   {
-      tick=(jd-TNG0JULIAN)*TNGSTARPERJULIAN;
-      len=0.0;
-   }
-
-//! method float tics()
-//!	This gives back the number of stardate tics
-//!	in the period.
-
-   float tics()
-   {
-      return len;
-   }
-
-//! method int number_of_seconds()
-//! method int number_of_days()
-//!	This gives back the Gregorian/Earth/ISO number of seconds
-//!	and number of days, for convinience and conversion to
-//!	other calendars.
-
-   int number_of_seconds()
-   {
-      return (int)(len/TNGSTARPERSECOND);
-   }
-
-   int number_of_days()
-   {
-      return (int)(len/TNGSTARPERJULIAN);
-   }
-
-   int unix_time()
-   {
-      return ((int)(tick/TNGSTARPERSECOND))+TNG0UNIX;
-   }
-
-   float julian_day()
-   {
-      return ((int)(tick/TNGSTARPERJULIAN))+TNG0JULIAN;
-   }
-
-   TimeRange add(int n,void|this_program step)
-   {
-      float x;
-      if (!step) 
-	 x=len;
-      else 
-      {
-	 if (!step->is_stardate)
-	    error("add: Incompatible type %O\n",step);
-	 x=step->len;
-      }
-
-
-      if (n&&x)
-	 return Tick("stardate",rules,tick+x,len);
-      return this_object();
-   }
-
-   static void convert_from(TimeRange other)
-   {
-      if (other->unix_time)
-	 create_unixtime_default(other->unix_time());
-      else
-	 ::convert_from(other);
-      if (other->is_stardate)
-      {
-	 tick=other->tick;
-	 len=other->len;
       }
-      else if (other->number_of_seconds)
-	 len=TNGSTARPERSECOND*other->number_of_seconds();
-      else if (other->number_of_days)
-	 len=TNGSTARPERJULIAN*other->number_of_days();
-      else
-	 len=0.0;
-   }
-
-   static TimeRange _set_size(int n,TimeRange x)
-   {
-      if (!x->is_stardate)
-	 error("distance: Incompatible type %O\n",x);
-      return Tick("stardate",rules,tick,x->len);
-   }
-
-   TimeRange place(TimeRange what,void|int force)
-   {
-// can't do this
-      return this_object();
-   }
-
-   array(TimeRange) split(int n)
-   {
-      if (!n) return ({this_object()}); // foo
-
-      float z=tick;
-      float l=len/n;
-      array(TimeRange) res=({});
-
-      while (n--)
-	 res+=({Tick("stardate",rules,z,l)}),z+=l;
-
-      return res;
-   }
-
-   TimeRange beginning()
-   {
-      if (!len) return this_object();
-      return Tick("stardate",rules,tick,0.0);
-   }
-
-   TimeRange end()
-   {
-      if (!len) return this_object();
-      return Tick("stardate",rules,tick+len,0.0);
-   }
-
-   TimeRange distance(TimeRange to)
-   {
-      if (!to->is_stardate)
-	 error("distance: Incompatible type %O\n",to);
-      if (to->tick<tick)
-	 error("negative distance\n");
-      return Tick("stardate",rules,tick,to->tick-tick);
-   }
-
-   array _compare(TimeRange with)
-   {
-      float b1=tick;
-      float e1=tick+len;
-      float b2,e2;
-      if (with->is_stardate)
-	 b2=with->tick,e2=b2+with->len;
       else 
-	 ::_compare(with);
-#define CMP(A,B) ( ((A)<(B))?-1:((A)>(B))?1:0 )
-      return ({ CMP(b1,b2),CMP(b1,e2),CMP(e1,b2),CMP(e1,e2) });
+	 jd=(float)day[0];
+      from_julian_day(jd);
    }
 
-   int __hash() { return (int)tick; }
-
-   cTick set_ruleset(Ruleset r)
+   static void from_stardate(float f)
    {
-      return Tick("stardate",r,tick,len);
+      tics=f;
+      jd=f/TNGSTARPERJULIAN+2569518.5;
    }
 
-   string _sprintf(int t)
+   static void from_julian_day(float f)
    {
-      switch (t)
-      {
-	 case 'O':
-	    if (len!=0.0) 
-	       return sprintf("Tick(%s)",nice_print_period());
-	    return sprintf("Tick(%s)",nice_print());
-	 default:
-	    return 0;
-      }
+      jd=f;
+      tics=(f-2569518.5)*TNGSTARPERJULIAN;
    }
 
-   string nice_print_period()
-   {
-      if (len>0.010)
-	 return sprintf("%s..%s",nice_print(),end()->nice_print());
-      else
-	 return sprintf("%s..%+g",nice_print(),len);
-   }
+//-- nonstandard methods --------------------------------------------
 
-   string nice_print()
+   float number()
    {
-      return sprintf("%.3f",tick);
+      return tics;
    }
-
-//! string format_long()
-//! string format_short()
-//! string format_vshort()
-//!	Format the stardate tick nicely.
-//!	<pre>
-//!	   long    "-322537.312"
-//!	   short   "77463.312"  (w/o >100000-component)
-//!	   short   "7463.312"  (w/o >10000-component)
-//!	</pre>
-
-   string format_long()
+   
+   int julian_day()
    {
-      return sprintf("%.3f",tick);
+      return (int)jd;
    }
 
-   string format_short()
+   float julian_day_f()
    {
-      return sprintf("%.3f",tick-((int)tick/100000)*100000);
+      return jd;
    }
-
-   string format_vshort()
-   {
-      return sprintf("%.3f",tick-((int)tick/10000)*10000);
-   }
-}
-
-// compat
-function(mixed...:cTick) TNGDate=cTick;
-
-// for events
-function(mixed...:cTick) Day=cTick;
-
-//------------------------------------------------------------------------
-//  global convinience functions
-//------------------------------------------------------------------------
-
-//! method TimeofDay now()
-//!	Give the zero-length time period of the
-//!	current time.
-
-TimeofDay now()
-{
-   return Tick();
 }
diff --git a/lib/modules/Calendar.pmod/Swedish.pmod b/lib/modules/Calendar.pmod/Swedish.pmod
index 4226cb5cdf13c728fed4ae2016dd9dbfa9a36db6..252f1e55670d5ebca503e6bd334071bb1d486042 100644
--- a/lib/modules/Calendar.pmod/Swedish.pmod
+++ b/lib/modules/Calendar.pmod/Swedish.pmod
@@ -9,6 +9,8 @@
 //!	purposes. 
 //!
 
+#pike __VERSION__
+
 import ".";
 inherit ISO:ISO;
 
diff --git a/lib/modules/Calendar.pmod/TZnames.pmod b/lib/modules/Calendar.pmod/TZnames.pmod
index 9a51bf48790da6b9fdebaff50bf3abd299a8bf81..74b681a4fd94610a6af1c3f07972fee95f6f7b92 100644
--- a/lib/modules/Calendar.pmod/TZnames.pmod
+++ b/lib/modules/Calendar.pmod/TZnames.pmod
@@ -24,6 +24,8 @@
 //!	Please note that loading all the timezones can take some 
 //!	time, since they are generated and compiled on the fly.
 
+#pike __VERSION__
+
 mapping zones=
 ([
    "America":   ({"Scoresbysund","Godthab","Thule","New_York","Chicago",    
diff --git a/lib/modules/Calendar.pmod/Time.pmod b/lib/modules/Calendar.pmod/Time.pmod
index ea3feeacd5d40832e1e657df37ffe387319017b6..00fc6d6a0517f884847b0891e9b63a284c8ecdbd 100644
--- a/lib/modules/Calendar.pmod/Time.pmod
+++ b/lib/modules/Calendar.pmod/Time.pmod
@@ -9,6 +9,8 @@
 //! 	is inherited by other modules (<ref>ISO</ref> by <ref>YMD</ref>, 
 //! 	for instance).
 
+#pike __VERSION__
+
 //  #pragma strict_types
 
 //- these classes majorly works on seconds
diff --git a/lib/modules/Calendar.pmod/TimeRanges.pmod b/lib/modules/Calendar.pmod/TimeRanges.pmod
index edbcb2a6f88222fcddfae6240639ccf9ba8b5f77..4aefad1329fbae70f6c75377991dd1d4d021c0be 100644
--- a/lib/modules/Calendar.pmod/TimeRanges.pmod
+++ b/lib/modules/Calendar.pmod/TimeRanges.pmod
@@ -1,5 +1,7 @@
 //! module Calendar
 
+#pike __VERSION__
+
 #define zero int(0..0)
 
 import ".";
diff --git a/lib/modules/Calendar.pmod/Timezone.pmod b/lib/modules/Calendar.pmod/Timezone.pmod
index 7f02cb4d08286b37a94bc64396549fd87abae531..1b879235fad6c4501610ceca5189f40ba814cfb6 100644
--- a/lib/modules/Calendar.pmod/Timezone.pmod
+++ b/lib/modules/Calendar.pmod/Timezone.pmod
@@ -78,6 +78,8 @@
 //!	are not listed.
 
 
+#pike __VERSION__
+
 import ".";
 
 // ----------------------------------------------------------------
diff --git a/lib/modules/Calendar.pmod/YMD.pmod b/lib/modules/Calendar.pmod/YMD.pmod
index f558fd71c51e12f79b6f9ceb14cf75c0992c9d44..4bd41e649b147d1eb3defbe1b50f902a24f45764 100644
--- a/lib/modules/Calendar.pmod/YMD.pmod
+++ b/lib/modules/Calendar.pmod/YMD.pmod
@@ -6,6 +6,8 @@
 //! ie, one with years, months, weeks and days
 //!
 
+#pike __VERSION__
+
 //  #pragma strict_types
 
 import ".";
diff --git a/lib/modules/Calendar.pmod/mkrules.pike b/lib/modules/Calendar.pmod/mkrules.pike
index ddd7c8a7a1b29c8673b915b3bbe928c757bb78b9..64298fe25b63aa310abaa7b0f87fd0d76ffa06bb 100644
--- a/lib/modules/Calendar.pmod/mkrules.pike
+++ b/lib/modules/Calendar.pmod/mkrules.pike
@@ -10,8 +10,9 @@
 // and zic(8) is the usual compiler.
 
 // pike mkrules.pike ../data/{africa,antarctica,asia,australasia,backward,etcetera,europe,northamerica,pacificnew,southamerica,systemv}
-// $Id: mkrules.pike,v 1.2 2000/07/30 09:10:10 mirar Exp $
+// $Id: mkrules.pike,v 1.3 2000/09/26 18:59:24 hubbe Exp $
 
+#pike __VERSION__
 
 object cal=Calendar.ISO->set_timezone("UTC");
 function Year=cal->Year;
diff --git a/lib/modules/Calendar.pmod/module.pmod b/lib/modules/Calendar.pmod/module.pmod
index b64baed6e81a7f7a541a0f2967a85d88dff34a95..1481452ffb6bc05dbb58dbb6a9a27609b714f3d4 100644
--- a/lib/modules/Calendar.pmod/module.pmod
+++ b/lib/modules/Calendar.pmod/module.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 static private int stage=0;
 static private int booted=0;
 static private object defcal;
diff --git a/lib/modules/Colors.pmod b/lib/modules/Colors.pmod
index 9cf8a54b8ce3be0708cd794cad40c212f5edbc45..1184f9ef7fb61da21a44550f4d283495fd8ff972 100644
--- a/lib/modules/Colors.pmod
+++ b/lib/modules/Colors.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 #define COLOR(C,R,G,B) constant C=({R,G,B})
 
 COLOR(aliceblue,240,248,255);
diff --git a/lib/modules/Crypto.pmod b/lib/modules/Crypto.pmod
index 35ce464ed68b6f5b5e944db693b0020fd9548af7..adb5e3987c7735e8a34a80759eb3a362319e8876 100644
--- a/lib/modules/Crypto.pmod
+++ b/lib/modules/Crypto.pmod
@@ -2,6 +2,8 @@
  *
  */
 
+#pike __VERSION__
+
 static private mixed crypto_module;
 
 mixed `[](string name)
diff --git a/lib/modules/Crypto/_rsa.pike b/lib/modules/Crypto/_rsa.pike
index 54fda3454c98efdb1a8144d226511f0a7f5005be..41702851bbdd188adba071f29971440f8ca001dd 100644
--- a/lib/modules/Crypto/_rsa.pike
+++ b/lib/modules/Crypto/_rsa.pike
@@ -1,8 +1,10 @@
-/* $Id: _rsa.pike,v 1.3 2000/06/13 19:05:37 grubba Exp $
+/* $Id: _rsa.pike,v 1.4 2000/09/26 18:59:26 hubbe Exp $
  *
  * Follow the PKCS#1 standard for padding and encryption.
  */
 
+#pike __VERSION__
+
 #if constant(Gmp.mpz)
 
 #define bignum object(Gmp.mpz)
diff --git a/lib/modules/Crypto/des3.pike b/lib/modules/Crypto/des3.pike
index 6fee92b7cf689c709b7f515518db3e9fcd767850..b0ba21409ab8c5ff5bc34307ff77c33906a472d9 100644
--- a/lib/modules/Crypto/des3.pike
+++ b/lib/modules/Crypto/des3.pike
@@ -1,7 +1,9 @@
-/* $Id: des3.pike,v 1.4 1997/05/31 22:03:46 grubba Exp $
+/* $Id: des3.pike,v 1.5 2000/09/26 18:59:26 hubbe Exp $
  *
  */
 
+#pike __VERSION__
+
 inherit Crypto.pipe : pipe;
 
 private array(object) d;
diff --git a/lib/modules/Crypto/des3_cbc.pike b/lib/modules/Crypto/des3_cbc.pike
index 87244648b2c57a040850c986aabd00a0b6078e32..f02f546aa256d0dc6deb0e506f95e2108d7bdc8b 100644
--- a/lib/modules/Crypto/des3_cbc.pike
+++ b/lib/modules/Crypto/des3_cbc.pike
@@ -1,7 +1,9 @@
-/* $Id: des3_cbc.pike,v 1.2 1997/05/31 22:03:46 grubba Exp $
+/* $Id: des3_cbc.pike,v 1.3 2000/09/26 18:59:27 hubbe Exp $
  *
  */
 
+#pike __VERSION__
+
 inherit Crypto.cbc : cbc;
 
 void create()
diff --git a/lib/modules/Crypto/des_cbc.pike b/lib/modules/Crypto/des_cbc.pike
index 8305119d9dcff06fdb2488d4dadc12949155fa9b..09f73e9f6b2223a67ed0fcdfcbfa9c15abc7f8e6 100644
--- a/lib/modules/Crypto/des_cbc.pike
+++ b/lib/modules/Crypto/des_cbc.pike
@@ -1,7 +1,9 @@
-/* $Id: des_cbc.pike,v 1.2 1997/05/31 22:03:47 grubba Exp $
+/* $Id: des_cbc.pike,v 1.3 2000/09/26 18:59:28 hubbe Exp $
  *
  */
 
+#pike __VERSION__
+
 inherit Crypto.cbc : cbc;
 
 void create()
diff --git a/lib/modules/Crypto/dsa.pike b/lib/modules/Crypto/dsa.pike
index f0a08a724c5034b3600a8f1a8b58f8da3875251f..b338435d48c194599c0709eebd9f40eb97c51614 100644
--- a/lib/modules/Crypto/dsa.pike
+++ b/lib/modules/Crypto/dsa.pike
@@ -3,6 +3,8 @@
  * The Digital Signature Algorithm (aka DSS, Digital Signature Standard).
  */
 
+#pike __VERSION__
+
 #if constant(Gmp.mpz)
 
 #define bignum object(Gmp.mpz)
diff --git a/lib/modules/Crypto/hmac.pike b/lib/modules/Crypto/hmac.pike
index f4a3be6678c4197998fafc9cfa497fadb5132ddb..5e5489210bfd71e5868605dae1d03f5f661c38f2 100644
--- a/lib/modules/Crypto/hmac.pike
+++ b/lib/modules/Crypto/hmac.pike
@@ -3,6 +3,8 @@
  * HMAC, defined by RFC-2104
  */
 
+#pike __VERSION__
+
 function H;  /* Constructor for hash object */
 
 /* B is the size of one compression block, in octets. */
diff --git a/lib/modules/Crypto/idea_cbc.pike b/lib/modules/Crypto/idea_cbc.pike
index ab6a709293fe0eb28861527ff4c1fd1274f12ff5..59097e3396387208b58dfc7466384ab41f192a36 100644
--- a/lib/modules/Crypto/idea_cbc.pike
+++ b/lib/modules/Crypto/idea_cbc.pike
@@ -1,7 +1,9 @@
-/* $Id: idea_cbc.pike,v 1.2 1997/05/31 22:03:48 grubba Exp $
+/* $Id: idea_cbc.pike,v 1.3 2000/09/26 18:59:30 hubbe Exp $
  *
  */
 
+#pike __VERSION__
+
 inherit Crypto.cbc : cbc;
 
 void create()
diff --git a/lib/modules/Crypto/randomness.pmod b/lib/modules/Crypto/randomness.pmod
index 63e442e54cf0d225cd2c025e3d7ba3de2efca348..f6d7db7baf813c9ec4b29fc3b6b1a1e7f3b9aebc 100644
--- a/lib/modules/Crypto/randomness.pmod
+++ b/lib/modules/Crypto/randomness.pmod
@@ -1,4 +1,4 @@
-/* $Id: randomness.pmod,v 1.16 2000/04/15 09:34:26 hubbe Exp $
+/* $Id: randomness.pmod,v 1.17 2000/09/26 18:59:31 hubbe Exp $
  */
 
 //! module Crypto
@@ -10,6 +10,8 @@
  * will block if it can't provide enough random bits, while /dev/urandom
  * will degenerate into a reasonably strong pseudo random generator */
 
+#pike __VERSION__
+
 static constant RANDOM_DEVICE = "/dev/random";
 static constant PRANDOM_DEVICE = "/dev/urandom";
 
diff --git a/lib/modules/Crypto/rsa.pike b/lib/modules/Crypto/rsa.pike
index d62795859dfc3b85ac0aab37f6623526a171b9ef..ee30a6c3b27e1e1bb2df413e3facf2eea9fad8f8 100644
--- a/lib/modules/Crypto/rsa.pike
+++ b/lib/modules/Crypto/rsa.pike
@@ -1,8 +1,10 @@
-/* $Id: rsa.pike,v 1.25 2000/06/20 15:13:10 grubba Exp $
+/* $Id: rsa.pike,v 1.26 2000/09/26 18:59:32 hubbe Exp $
  *
  * Follow the PKCS#1 standard for padding and encryption.
  */
 
+#pike __VERSION__
+
 #if constant(Gmp.mpz)
 
 #define bignum object(Gmp.mpz)
diff --git a/lib/modules/Debug.pmod/werror.pmod b/lib/modules/Debug.pmod/werror.pmod
index a94c396fd90411aceae1f398d18d19597648a40e..ba422d30f582a8e12c4d7bc371b95ab0a3726291 100644
--- a/lib/modules/Debug.pmod/werror.pmod
+++ b/lib/modules/Debug.pmod/werror.pmod
@@ -1,10 +1,12 @@
 /*
- * $Id: werror.pmod,v 1.3 1999/12/30 00:36:10 grubba Exp $
+ * $Id: werror.pmod,v 1.4 2000/09/26 18:59:33 hubbe Exp $
  *
  * Some functions to simplify writing debug-messages.
  * (Aren't we lazy? :-) )
  */
 
+#pike __VERSION__
+
 function(:int(0..0)) `[](string print_what)
 {
    if (print_what=="") print_what="bipp\n";
diff --git a/lib/modules/Filesystem.pmod/System.pike b/lib/modules/Filesystem.pmod/System.pike
index a54d76f1389b5083b450afcc58452820433a36fc..07f16100cc83633c838ddbce2633912e4e2db314 100644
--- a/lib/modules/Filesystem.pmod/System.pike
+++ b/lib/modules/Filesystem.pmod/System.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 inherit Filesystem.Base;
 
 static Filesystem.Base parent; // parent filesystem
diff --git a/lib/modules/Filesystem.pmod/Tar.pmod b/lib/modules/Filesystem.pmod/Tar.pmod
index 5fc44f32ce3e613f77e3213b310e3ac55c07ecc4..d47083dcb056941292f76b7bfa5eff6ead05dfa3 100644
--- a/lib/modules/Filesystem.pmod/Tar.pmod
+++ b/lib/modules/Filesystem.pmod/Tar.pmod
@@ -1,7 +1,9 @@
 /*
- * $Id: Tar.pmod,v 1.7 2000/09/18 17:46:38 grubba Exp $
+ * $Id: Tar.pmod,v 1.8 2000/09/26 18:59:35 hubbe Exp $
  */
 
+#pike __VERSION__
+
 class _Tar  // filesystem
 {
   Stdio.File fd;
diff --git a/lib/modules/Filesystem.pmod/module.pmod b/lib/modules/Filesystem.pmod/module.pmod
index 3bc7528617013b8a70e0777b79fd12186c779b8e..ec98d6aa6135e1b6b1bbf26f3cb4ac60397dd323 100644
--- a/lib/modules/Filesystem.pmod/module.pmod
+++ b/lib/modules/Filesystem.pmod/module.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 class Stat
 {
   int mode;
diff --git a/lib/modules/Function.pmod b/lib/modules/Function.pmod
index 7ab3243845723be2f27450c71dfcdf6b7032eefd..c33b1969c9ac4fab64dd86fafbfa25bd8d91c8b1 100644
--- a/lib/modules/Function.pmod
+++ b/lib/modules/Function.pmod
@@ -1 +1,3 @@
+#pike __VERSION__
+
 constant defined = __builtin.function_defined;
diff --git a/lib/modules/GDK.pmod b/lib/modules/GDK.pmod
index abcbabacb3b811a4ec4a98a6fee3e975057a0b11..55e5b27ade93547827359d23cc5f6449672af554 100644
--- a/lib/modules/GDK.pmod
+++ b/lib/modules/GDK.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 #define INDEX(x) GTK[x]
 
 object Atom = class
diff --git a/lib/modules/GLU.pmod b/lib/modules/GLU.pmod
index 773d878a0cc9712f624a37106732fe08e46a8cfc..51654442dbae890c8720e207b9991ae1c6318c59 100644
--- a/lib/modules/GLU.pmod
+++ b/lib/modules/GLU.pmod
@@ -1,8 +1,11 @@
 /*
- * $Id: GLU.pmod,v 1.6 1999/11/09 00:02:09 grubba Exp $
+ * $Id: GLU.pmod,v 1.7 2000/09/26 18:59:04 hubbe Exp $
  *
  * GL Utilities module.
  */
+
+#pike __VERSION__
+
 #if constant(GL.glGet)
 import GL;
 import Math;
diff --git a/lib/modules/GTKSupport.pmod/Alert.pike b/lib/modules/GTKSupport.pmod/Alert.pike
index 92c9a6536084d4ba56e093a66555c96c3500ee1a..ada2c3203d5c1fdb6fc0a3f7df97cb894b9fcf7d 100644
--- a/lib/modules/GTKSupport.pmod/Alert.pike
+++ b/lib/modules/GTKSupport.pmod/Alert.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 inherit GTK.Dialog;
 
 void begone(object w2)
diff --git a/lib/modules/GTKSupport.pmod/MenuFactory.pmod b/lib/modules/GTKSupport.pmod/MenuFactory.pmod
index cea49d78066ee96b46d82c3855b3bcb22254375c..c0e70c14c41daba980585de1077df26bfa402e5e 100644
--- a/lib/modules/GTKSupport.pmod/MenuFactory.pmod
+++ b/lib/modules/GTKSupport.pmod/MenuFactory.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 #define FLAG_SHIFT   1
 #define FLAG_CTRL    4
 #define FLAG_ALT     8
diff --git a/lib/modules/GTKSupport.pmod/SClist.pike b/lib/modules/GTKSupport.pmod/SClist.pike
index 85023800f11449b54df1f170f7cdbef755fc4c98..3f212be8b67f46f60e15ae80168c35e684c85edf 100644
--- a/lib/modules/GTKSupport.pmod/SClist.pike
+++ b/lib/modules/GTKSupport.pmod/SClist.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 inherit GTK.ScrolledWindow;
 
 GTK.Clist cl;
diff --git a/lib/modules/GTKSupport.pmod/Util.pmod b/lib/modules/GTKSupport.pmod/Util.pmod
index 5c971a90e5696bbb9da213039c3f7940d2dcd3a7..84496ef83e68973182f10315e3d03b65f2acd59f 100644
--- a/lib/modules/GTKSupport.pmod/Util.pmod
+++ b/lib/modules/GTKSupport.pmod/Util.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 // This function will be easier to write in newer pikes, where there
 // will be a Image.ANY.decode function, but this will do for now. It
 // decoded an image from a string and returns a mapping with the
diff --git a/lib/modules/GTKSupport.pmod/pCtree.pike b/lib/modules/GTKSupport.pmod/pCtree.pike
index f345053ce7793ed53afb58d83988666685b987ea..0432fa67f4c73aa9b99878c71cc6cea5974bf725 100644
--- a/lib/modules/GTKSupport.pmod/pCtree.pike
+++ b/lib/modules/GTKSupport.pmod/pCtree.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 inherit GTK.Ctree:ctree;
 
 class Node
diff --git a/lib/modules/GTKSupport.pmod/pDrawingArea.pike b/lib/modules/GTKSupport.pmod/pDrawingArea.pike
index 7e77ce9cdf8fa4f456a30efba1c46254ea1e96a3..b239be872884939f72422708bae6fd221d06784e 100644
--- a/lib/modules/GTKSupport.pmod/pDrawingArea.pike
+++ b/lib/modules/GTKSupport.pmod/pDrawingArea.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 inherit GTK.DrawingArea;
 static object backing_store, bgc;
 static int _xsize, _ysize, is_realized;
diff --git a/lib/modules/Geography.pmod/Countries.pmod b/lib/modules/Geography.pmod/Countries.pmod
index 43b75f98e5709d7e0baff801c8a9cb5c26953790..57041dabde8240254988f78ecd22bf9a4f71389f 100644
--- a/lib/modules/Geography.pmod/Countries.pmod
+++ b/lib/modules/Geography.pmod/Countries.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 array(Country) countries=
 ({
    Country("AD","Andorra"),
diff --git a/lib/modules/Geography.pmod/Position.pike b/lib/modules/Geography.pmod/Position.pike
index 9ce29d826667445aa7c20e38de0bf772af27333c..f704863be32a6baa2f8bab936c81b4f1b7b536d3 100644
--- a/lib/modules/Geography.pmod/Position.pike
+++ b/lib/modules/Geography.pmod/Position.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 //!
 //! module Geographical
 //! class Position
diff --git a/lib/modules/Getopt.pmod b/lib/modules/Getopt.pmod
index 5695d5249d7853d6d7fe2226d18f2fc9150a457b..057c3fa73a493568df91dfccdd0de4b11a33ec1d 100644
--- a/lib/modules/Getopt.pmod
+++ b/lib/modules/Getopt.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 //  startpid = (int)find_arg(argv, "s", ({ "start-script-pid" }),
 // 			     ({ "ROXEN_START_SCRIPT_PID"}));
 
diff --git a/lib/modules/Gnome.pmod b/lib/modules/Gnome.pmod
index 9e003f04f3ae0f608c96cadd0c71ebba31696541..3542001d63b96ab2c5426683400c422819693148 100644
--- a/lib/modules/Gnome.pmod
+++ b/lib/modules/Gnome.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 mixed `[](string what)
 {
   if(what == "_module_value") return ([])[0];
diff --git a/lib/modules/Graphics.pmod/Graph.pmod/create_bars.pike b/lib/modules/Graphics.pmod/Graph.pmod/create_bars.pike
index b143252dba56c3301d5eccb51cb197c8402165c3..4bd4c61aced9fedc8a1c69421ec3999ff2a83152 100755
--- a/lib/modules/Graphics.pmod/Graph.pmod/create_bars.pike
+++ b/lib/modules/Graphics.pmod/Graph.pmod/create_bars.pike
@@ -1,5 +1,7 @@
 #!NOMODULE
 
+#pike __VERSION__
+
 #include "graph.h"
 
 import Image;
@@ -9,7 +11,7 @@ import Stdio;
 inherit "polyline.pike";
 inherit "create_graph.pike";
 
-constant cvs_version = "$Id: create_bars.pike,v 1.1 1999/09/30 13:03:56 hedda Exp $";
+constant cvs_version = "$Id: create_bars.pike,v 1.2 2000/09/26 18:59:43 hubbe Exp $";
 
 /*
  * name = "BG: Create bars";
diff --git a/lib/modules/Graphics.pmod/Graph.pmod/create_graph.pike b/lib/modules/Graphics.pmod/Graph.pmod/create_graph.pike
index c04e780a063e310e1dad8be70b16c868b081a9f5..6a56a36d23cee87728fa738c1e4dbc4d6a0c7cd9 100755
--- a/lib/modules/Graphics.pmod/Graph.pmod/create_graph.pike
+++ b/lib/modules/Graphics.pmod/Graph.pmod/create_graph.pike
@@ -1,5 +1,7 @@
 #!NOMODULE
 
+#pike __VERSION__
+
 #include "graph.h"
 
 import Image;
@@ -8,7 +10,7 @@ import Stdio;
 
 inherit "polyline.pike";
 
-constant cvs_version = "$Id: create_graph.pike,v 1.2 2000/07/24 08:08:43 hedda Exp $";
+constant cvs_version = "$Id: create_graph.pike,v 1.3 2000/09/26 18:59:43 hubbe Exp $";
 
 /*
  * name = "BG: Create graphs";
diff --git a/lib/modules/Graphics.pmod/Graph.pmod/create_pie.pike b/lib/modules/Graphics.pmod/Graph.pmod/create_pie.pike
index 74a6be03a5e39af01fd29830f171f9c9f45ec68e..d1f691b85600147f0b101cd440d4457258ad8daf 100644
--- a/lib/modules/Graphics.pmod/Graph.pmod/create_pie.pike
+++ b/lib/modules/Graphics.pmod/Graph.pmod/create_pie.pike
@@ -1,5 +1,7 @@
 #!NOMODULE
 
+#pike __VERSION__
+
 #include "graph.h"
 
 // import Image;
@@ -10,7 +12,7 @@ inherit "polyline.pike";
 inherit "create_graph.pike";
 inherit "create_bars.pike";
 
-constant cvs_version = "$Id: create_pie.pike,v 1.2 2000/08/28 03:07:27 hedda Exp $";
+constant cvs_version = "$Id: create_pie.pike,v 1.3 2000/09/26 18:59:44 hubbe Exp $";
 
 /*
  * name = "BG: Create pies";
diff --git a/lib/modules/Graphics.pmod/Graph.pmod/module.pmod b/lib/modules/Graphics.pmod/Graph.pmod/module.pmod
index 8e4a912aa3cb8d968b08867fed7a385a72f4c2ff..e8e9037b4cec9e2644f7f484687ee9898b63e49c 100644
--- a/lib/modules/Graphics.pmod/Graph.pmod/module.pmod
+++ b/lib/modules/Graphics.pmod/Graph.pmod/module.pmod
@@ -1,3 +1,4 @@
+#pike __VERSION__
 
 #include "graph.h"
 
diff --git a/lib/modules/Graphics.pmod/Graph.pmod/polyline.pike b/lib/modules/Graphics.pmod/Graph.pmod/polyline.pike
index 3033b772f459146ad733a3f77f9b47e4c58ed3d8..b307157b782bb401a3d3dea9a7c6cc7f4d4fe23e 100644
--- a/lib/modules/Graphics.pmod/Graph.pmod/polyline.pike
+++ b/lib/modules/Graphics.pmod/Graph.pmod/polyline.pike
@@ -2,9 +2,11 @@
 /*
  * name = "BG: Create pies";
  * doc = "Business Graphics sub-module providing draw functions.";
- * $Id: polyline.pike,v 1.1 1999/09/30 13:04:17 hedda Exp $
+ * $Id: polyline.pike,v 1.2 2000/09/26 18:59:44 hubbe Exp $
  */
 
+#pike __VERSION__
+
 #define CAP_BUTT       0
 #define CAP_ROUND      1
 #define CAP_PROJECTING 2
diff --git a/lib/modules/Graphics.pmod/Graph.pmod/test.pike b/lib/modules/Graphics.pmod/Graph.pmod/test.pike
index e4b87400e1e1a0fcd0963237edc883dd35e6a386..65cdeac726075cb671f79bd73fcbcbe8e0e25276 100755
--- a/lib/modules/Graphics.pmod/Graph.pmod/test.pike
+++ b/lib/modules/Graphics.pmod/Graph.pmod/test.pike
@@ -1,5 +1,7 @@
 
 //This is a testprogram that creates a simple graph.
+#pike __VERSION__
+
 import ".";
 
 void main()
diff --git a/lib/modules/LR.pmod/Grammar_parser.pmod b/lib/modules/LR.pmod/Grammar_parser.pmod
index 4c6a37133191b84336b68780b60550988472773c..2e9a0d5450d229709a783cc0675a7a674ae88547 100755
--- a/lib/modules/LR.pmod/Grammar_parser.pmod
+++ b/lib/modules/LR.pmod/Grammar_parser.pmod
@@ -1,7 +1,9 @@
 #!/usr/local/bin/pike
 
+#pike __VERSION__
+
 /*
- * $Id: Grammar_parser.pmod,v 1.8 2000/03/30 21:19:17 grubba Exp $
+ * $Id: Grammar_parser.pmod,v 1.9 2000/09/26 18:59:45 hubbe Exp $
  *
  * Generates a parser from a textual specification.
  *
@@ -10,7 +12,7 @@
 
 //.
 //. File:	Grammar_parser.pmod
-//. RCSID:	$Id: Grammar_parser.pmod,v 1.8 2000/03/30 21:19:17 grubba Exp $
+//. RCSID:	$Id: Grammar_parser.pmod,v 1.9 2000/09/26 18:59:45 hubbe Exp $
 //. Author:	Henrik grubbstr�m (grubba@infovav.se)
 //.
 //. Synopsis:	Generates an LR parser from a textual specification.
diff --git a/lib/modules/LR.pmod/item.pike b/lib/modules/LR.pmod/item.pike
index 176759e140d7f2c78e93b597dd0f5ae595ae0324..4d1f7798eee4e35799ccbdd18ed430f4af49b164 100644
--- a/lib/modules/LR.pmod/item.pike
+++ b/lib/modules/LR.pmod/item.pike
@@ -1,14 +1,16 @@
 /*
- * $Id: item.pike,v 1.4 1998/11/12 19:45:41 grubba Exp $
+ * $Id: item.pike,v 1.5 2000/09/26 18:59:46 hubbe Exp $
  *
  * An LR(0) item
  *
  * Henrik Grubbstr�m 1996-11-27
  */
 
+#pike __VERSION__
+
 //.
 //. File:	item.pike
-//. RCSID:	$Id: item.pike,v 1.4 1998/11/12 19:45:41 grubba Exp $
+//. RCSID:	$Id: item.pike,v 1.5 2000/09/26 18:59:46 hubbe Exp $
 //. Author:	Henrik Grubbstr�m (grubba@infovav.se)
 //.
 //. Synopsis:	An LR(0) item
diff --git a/lib/modules/LR.pmod/lr.pike b/lib/modules/LR.pmod/lr.pike
index 4552a9eabf33d015615c108cdd17eab620782b5e..cfc47084a89740d2e5543e45bda44261a5c181d1 100755
--- a/lib/modules/LR.pmod/lr.pike
+++ b/lib/modules/LR.pmod/lr.pike
@@ -1,13 +1,15 @@
 #!/usr/local/bin/pike
 
 /*
- * $Id: lr.pike,v 1.3 2000/03/30 21:18:53 grubba Exp $
+ * $Id: lr.pike,v 1.4 2000/09/26 18:59:46 hubbe Exp $
  *
  * An LR(1) Parser in Pike
  *
  * Henrik Grubbstr�m 1996-11-23
  */
 
+#pike __VERSION__
+
 import LR;
 
 object(parser) g;
diff --git a/lib/modules/LR.pmod/parser.pike b/lib/modules/LR.pmod/parser.pike
index 95493bd897dd515408cbe2bd4b4b1dfac0154ef3..0f87ff1d393ea646b21b1b24834f18ad1071bb97 100644
--- a/lib/modules/LR.pmod/parser.pike
+++ b/lib/modules/LR.pmod/parser.pike
@@ -1,5 +1,5 @@
 /*
- * $Id: parser.pike,v 1.22 2000/02/16 22:11:41 grubba Exp $
+ * $Id: parser.pike,v 1.23 2000/09/26 18:59:46 hubbe Exp $
  *
  * A BNF-grammar in Pike.
  * Compiles to a LALR(1) state-machine.
@@ -7,9 +7,11 @@
  * Henrik Grubbstr�m 1996-11-24
  */
 
+#pike __VERSION__
+
 //.
 //. File:	parser.pike
-//. RCSID:	$Id: parser.pike,v 1.22 2000/02/16 22:11:41 grubba Exp $
+//. RCSID:	$Id: parser.pike,v 1.23 2000/09/26 18:59:46 hubbe Exp $
 //. Author:	Henrik Grubbstr�m (grubba@infovav.se)
 //.
 //. Synopsis:	LALR(1) parser and compiler.
diff --git a/lib/modules/LR.pmod/priority.pike b/lib/modules/LR.pmod/priority.pike
index 3eeacb08987f183b292660c7d09393f448dface6..a9d93c9c3f8202f2ecff370d258efc2df83cf04d 100644
--- a/lib/modules/LR.pmod/priority.pike
+++ b/lib/modules/LR.pmod/priority.pike
@@ -1,14 +1,16 @@
 /*
- * $Id: priority.pike,v 1.2 1997/03/30 17:28:27 grubba Exp $
+ * $Id: priority.pike,v 1.3 2000/09/26 18:59:47 hubbe Exp $
  *
  * Rule priority specification
  *
  * Henrik Grubbstr�m 1996-12-05
  */
 
+#pike __VERSION__
+
 //.
 //. File:	priority.pike
-//. RCSID:	$Id: priority.pike,v 1.2 1997/03/30 17:28:27 grubba Exp $
+//. RCSID:	$Id: priority.pike,v 1.3 2000/09/26 18:59:47 hubbe Exp $
 //. Author:	Henrik Grubbstr�m (grubba@infovav.se)
 //.
 //. Synopsis:	Rule priority specification.
diff --git a/lib/modules/LR.pmod/rule.pike b/lib/modules/LR.pmod/rule.pike
index 4d4393b05d67d142bd3171bce3ba608bdf6f74dd..4258335c72100aa9fa2e12016c6c8791d2c4b00d 100644
--- a/lib/modules/LR.pmod/rule.pike
+++ b/lib/modules/LR.pmod/rule.pike
@@ -1,14 +1,16 @@
 /*
- * $Id: rule.pike,v 1.5 1998/11/13 02:36:18 grubba Exp $
+ * $Id: rule.pike,v 1.6 2000/09/26 18:59:47 hubbe Exp $
  *
  * A BNF-rule.
  *
  * Henrik Grubbstr�m 1996-11-24
  */
 
+#pike __VERSION__
+
 //.
 //. File:	rule.pike
-//. RCSID:	$Id: rule.pike,v 1.5 1998/11/13 02:36:18 grubba Exp $
+//. RCSID:	$Id: rule.pike,v 1.6 2000/09/26 18:59:47 hubbe Exp $
 //. Author:	Henrik Grubbstr�m (grubba@infovav.se)
 //.
 //. Synopsis:	Implements a BNF rule.
diff --git a/lib/modules/LR.pmod/scanner.pike b/lib/modules/LR.pmod/scanner.pike
index 730f8bada5d55d6b3dfccb1eb6773e5653f3c9f2..415d454a8e8025db3f64ad6f4390b26b7f6cdc3c 100644
--- a/lib/modules/LR.pmod/scanner.pike
+++ b/lib/modules/LR.pmod/scanner.pike
@@ -1,8 +1,9 @@
 /*
- * $Id: scanner.pike,v 1.1 1997/03/03 23:50:22 grubba Exp $
+ * $Id: scanner.pike,v 1.2 2000/09/26 18:59:47 hubbe Exp $
  *
  * Scanner using reg-exps.
  *
  * Henrik Grubbstr�m 1996-12-16
  */
 
+#pike __VERSION__
diff --git a/lib/modules/Languages.pmod/PLIS.pmod b/lib/modules/Languages.pmod/PLIS.pmod
index 005da63320cf8628f4642d4914d258b10fec0f25..4f70bb8ea9075e053aeff9f1f3268356d974000e 100644
--- a/lib/modules/Languages.pmod/PLIS.pmod
+++ b/lib/modules/Languages.pmod/PLIS.pmod
@@ -3,6 +3,8 @@
  * PLIS (Permuted Lisp). A Lisp language somewhat similar to scheme.
  */
 
+#pike __VERSION__
+
 #define error(X) throw( ({ (X), backtrace() }) )
 
 #ifdef LISP_DEBUG
diff --git a/lib/modules/Locale.pmod/Charset.pmod b/lib/modules/Locale.pmod/Charset.pmod
index 9d5424f959544bfcfd7dee9230df9e69baae57e0..5c8a3d921d6f80bd5a85c64d13afbee429cc37d5 100644
--- a/lib/modules/Locale.pmod/Charset.pmod
+++ b/lib/modules/Locale.pmod/Charset.pmod
@@ -1 +1,3 @@
+#pike __VERSION__
+
 inherit _Charset;
diff --git a/lib/modules/Locale.pmod/Gettext.pmod b/lib/modules/Locale.pmod/Gettext.pmod
index d9f2f6144d1754287ad1551984c404df6280b9fe..0c37d0d612c1a69ba7013b714d8c6e90c6de1b22 100644
--- a/lib/modules/Locale.pmod/Gettext.pmod
+++ b/lib/modules/Locale.pmod/Gettext.pmod
@@ -1 +1,3 @@
+#pike __VERSION__
+
 inherit Gettext;
diff --git a/lib/modules/Locale.pmod/module.pmod b/lib/modules/Locale.pmod/module.pmod
index 91a6b12af610315810abbe6c8c82068b7508d108..a5ede95c5839d66b941e9387356e41f7d067b035 100644
--- a/lib/modules/Locale.pmod/module.pmod
+++ b/lib/modules/Locale.pmod/module.pmod
@@ -1,6 +1,8 @@
 // Copyright � 2000, Roxen IS.
 // By Martin Nilsson
 
+#pike __VERSION__
+
 #define CLEAN_CYCLE 60*60
 //#define LOCALE_DEBUG
 //#define LOCALE_DEBUG_ALL
diff --git a/lib/modules/Parser.pmod/C.pmod b/lib/modules/Parser.pmod/C.pmod
index 5150b3869ddc41daf2f007c6e83e9c2a44ee96ff..45ba0a1d673a76e276ffc51dabd958b54392ac5d 100644
--- a/lib/modules/Parser.pmod/C.pmod
+++ b/lib/modules/Parser.pmod/C.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 mapping(string:string) global_groupings=(["{":"}","(":")","[":"]"]);
 
 array(string) split(string data)
diff --git a/lib/modules/Parser.pmod/Pike.pmod b/lib/modules/Parser.pmod/Pike.pmod
index 2733787ed13c4c12dea78a448f6b3d12436096b2..5ea81f5c9c312555782b73ee12a78c16d875fbc5 100644
--- a/lib/modules/Parser.pmod/Pike.pmod
+++ b/lib/modules/Parser.pmod/Pike.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 inherit "C.pmod";
 
 array(string) split(string data)
diff --git a/lib/modules/Parser.pmod/XML.pmod/Simple.pike b/lib/modules/Parser.pmod/XML.pmod/Simple.pike
index be00dee46b7d2df1b97660f96e19e734990d912f..faca8ca0c3cad4231ad5fcaa5188accfcbd7aa41 100644
--- a/lib/modules/Parser.pmod/XML.pmod/Simple.pike
+++ b/lib/modules/Parser.pmod/XML.pmod/Simple.pike
@@ -1 +1,3 @@
+#pike __VERSION__
+
 inherit spider.XML;
diff --git a/lib/modules/Parser.pmod/XML.pmod/Tree.pmod b/lib/modules/Parser.pmod/XML.pmod/Tree.pmod
index ed94dd9c3cb22b093cf3892d5e72899133c7af24..0523d3328d08d986fb04df10eea55d99fc16e669 100644
--- a/lib/modules/Parser.pmod/XML.pmod/Tree.pmod
+++ b/lib/modules/Parser.pmod/XML.pmod/Tree.pmod
@@ -1,5 +1,7 @@
+#pike __VERSION__
+
 /*
- * $Id: Tree.pmod,v 1.3 2000/07/12 20:12:13 js Exp $
+ * $Id: Tree.pmod,v 1.4 2000/09/26 18:59:50 hubbe Exp $
  *
  */
 
diff --git a/lib/modules/Parser.pmod/module.pmod b/lib/modules/Parser.pmod/module.pmod
index d39fc420fce9271624c78cdb5b983090894cb00a..30b26d3993c39390680431f272a97da1222df49c 100644
--- a/lib/modules/Parser.pmod/module.pmod
+++ b/lib/modules/Parser.pmod/module.pmod
@@ -1,8 +1,10 @@
 /*
- * $Id: module.pmod,v 1.1 2000/05/07 00:41:32 hubbe Exp $
+ * $Id: module.pmod,v 1.2 2000/09/26 18:59:50 hubbe Exp $
  *
  */
 
+#pike __VERSION__
+
 inherit Parser._parser;
 
 //! module Parser
diff --git a/lib/modules/Process.pmod b/lib/modules/Process.pmod
index 7c4b2c13799201db8bf2e0a497b48280625693b1..e45c17d5943fceca1110a2316b6dcb97983ee70d 100644
--- a/lib/modules/Process.pmod
+++ b/lib/modules/Process.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 #define error(X) throw( ({ (X), backtrace()[0..sizeof(backtrace())-2] }) )
 
 import Stdio;
diff --git a/lib/modules/Program.pmod b/lib/modules/Program.pmod
index 86ee7d3bc95c53cf0f40640cb664cfb310a5d46a..7da81ef687f1a7c4ef86c77225284fd968857d7b 100644
--- a/lib/modules/Program.pmod
+++ b/lib/modules/Program.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 constant inherit_list = __builtin.inherit_list;
 constant inherits = __builtin.program_inherits;
 constant implements = __builtin.program_implements;
diff --git a/lib/modules/Protocols.pmod/DNS.pmod b/lib/modules/Protocols.pmod/DNS.pmod
index 6b128794140a3075551a51e2a5cda4b923b3b052..15b7aea2f7f4e83e3cf40e9947d86de29622cfe3 100644
--- a/lib/modules/Protocols.pmod/DNS.pmod
+++ b/lib/modules/Protocols.pmod/DNS.pmod
@@ -4,7 +4,9 @@
 //! module Protocols
 //! submodule DNS
 
-//! $Id: DNS.pmod,v 1.49 2000/09/11 17:16:18 leif Exp $
+//! $Id: DNS.pmod,v 1.50 2000/09/26 18:59:51 hubbe Exp $
+
+#pike __VERSION__
 
 constant NOERROR=0;
 constant FORMERR=1;
diff --git a/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike b/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike
index d8ed9e88956357ca4ef7ec015a19e5a4e08e3a9d..12cd01f32697d5af5dfa98b531e2f549daa08551 100644
--- a/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike
+++ b/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 /*
 **! module Protocols
 **! submodule HTTP
diff --git a/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod b/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod
index 4f519becf7edce1e699514b91173f9c6fc556b4a..b735736c7ea26bd3f59df8a74817abba2ca4f960 100644
--- a/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod
+++ b/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod
@@ -1,3 +1,4 @@
+#pike __VERSION__
 
 //! module Protocols
 //! submodule HTTP
diff --git a/lib/modules/Protocols.pmod/IMAP.pmod/dummy_server.pike b/lib/modules/Protocols.pmod/IMAP.pmod/dummy_server.pike
index 003907cd0eba251e0b0d255263b1c949040f6f4f..c8a70fabef6ebf44a502065a3c53cdc013a86451 100644
--- a/lib/modules/Protocols.pmod/IMAP.pmod/dummy_server.pike
+++ b/lib/modules/Protocols.pmod/IMAP.pmod/dummy_server.pike
@@ -1,6 +1,7 @@
 /* test.pike
  *
  */
+#pike __VERSION__
 
 import .types;
 
diff --git a/lib/modules/Protocols.pmod/IMAP.pmod/imap_server.pike b/lib/modules/Protocols.pmod/IMAP.pmod/imap_server.pike
index cdd0925883a9409e709f59e2a5769ad398e54ea2..b10310f8d497229ea5534780093564d1c1b9bf77 100644
--- a/lib/modules/Protocols.pmod/IMAP.pmod/imap_server.pike
+++ b/lib/modules/Protocols.pmod/IMAP.pmod/imap_server.pike
@@ -1,7 +1,8 @@
 /* imap_server.pike
  *
- * $Id: imap_server.pike,v 1.18 1999/08/12 00:44:16 marcus fake $
+ * $Id: imap_server.pike,v 1.19 2000/09/26 18:59:55 hubbe Exp $
  */
+#pike __VERSION__
 
 constant unauth_commands =
 ([ "noop" : .requests.noop,
diff --git a/lib/modules/Protocols.pmod/IMAP.pmod/parse_line.pike b/lib/modules/Protocols.pmod/IMAP.pmod/parse_line.pike
index ae9d78a09411659668f49f62a651e53f062e29d3..2c097a1d25246818eec4d58034fdbed2cb114a3c 100644
--- a/lib/modules/Protocols.pmod/IMAP.pmod/parse_line.pike
+++ b/lib/modules/Protocols.pmod/IMAP.pmod/parse_line.pike
@@ -2,6 +2,8 @@
  *
  */
 
+#pike __VERSION__
+
 class partial_literal
 {
   int length;
diff --git a/lib/modules/Protocols.pmod/IMAP.pmod/parser.pike b/lib/modules/Protocols.pmod/IMAP.pmod/parser.pike
index 8ff1c1fdee2545efa5d1eb989caa8f8c2b46f714..3e7488a50d408be3194b99c73a034087f5186ba3 100644
--- a/lib/modules/Protocols.pmod/IMAP.pmod/parser.pike
+++ b/lib/modules/Protocols.pmod/IMAP.pmod/parser.pike
@@ -3,6 +3,8 @@
  * Continuation based imap parser.
  */
 
+#pike __VERSION__
+
 object line; /* Current line */
 
 // FIXME: Propagete 0:s (errors) through the continuation functions
diff --git a/lib/modules/Protocols.pmod/IMAP.pmod/requests.pmod b/lib/modules/Protocols.pmod/IMAP.pmod/requests.pmod
index c04dcc44c14fa81a97b841eaae80502d06fa0671..dbef5874e1b95e0f029028dd3be4b90bd088bcd5 100644
--- a/lib/modules/Protocols.pmod/IMAP.pmod/requests.pmod
+++ b/lib/modules/Protocols.pmod/IMAP.pmod/requests.pmod
@@ -1,8 +1,10 @@
 /* IMAP.requests
  *
- * $Id: requests.pmod,v 1.87 1999/12/31 22:32:02 grubba Exp $
+ * $Id: requests.pmod,v 1.88 2000/09/26 18:59:56 hubbe Exp $
  */
 
+#pike __VERSION__
+
 import .types;
 
 // FIXME: Pass the current request's tag when returning a "bad" action.
diff --git a/lib/modules/Protocols.pmod/IMAP.pmod/server.pike b/lib/modules/Protocols.pmod/IMAP.pmod/server.pike
index 1173c6ba2bad720e4c26d9144eb7326eec3c0801..530d74e79c82c0a0720134c203ff32d822686f81 100644
--- a/lib/modules/Protocols.pmod/IMAP.pmod/server.pike
+++ b/lib/modules/Protocols.pmod/IMAP.pmod/server.pike
@@ -3,6 +3,8 @@
  * Handles the server side of the protocol.
  */
 
+#pike __VERSION__
+
 inherit Protocols.Line.imap_style;
 
 int debug_level;
diff --git a/lib/modules/Protocols.pmod/IMAP.pmod/types.pmod b/lib/modules/Protocols.pmod/IMAP.pmod/types.pmod
index 45b62b8b599ee68fc8b99e3c287893451b232a0a..fcbdbfee287b97d9e5cf3c26c6cf1396957598fd 100644
--- a/lib/modules/Protocols.pmod/IMAP.pmod/types.pmod
+++ b/lib/modules/Protocols.pmod/IMAP.pmod/types.pmod
@@ -2,6 +2,8 @@
  *
  */
 
+#pike __VERSION__
+
 string imap_format(mixed x)
 {
   if (!x)
diff --git a/lib/modules/Protocols.pmod/IRC.pmod/Client.pike b/lib/modules/Protocols.pmod/IRC.pmod/Client.pike
index 77b565a1eb1b09523bcdfebb1b10ab767ea6d72c..7ff27b2d468363d637c98fe473a55912f3c40c9c 100644
--- a/lib/modules/Protocols.pmod/IRC.pmod/Client.pike
+++ b/lib/modules/Protocols.pmod/IRC.pmod/Client.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 import ".";
 
 object raw;
diff --git a/lib/modules/Protocols.pmod/IRC.pmod/Error.pmod b/lib/modules/Protocols.pmod/IRC.pmod/Error.pmod
index c0e6a4a1b23029a638217231106a56c43ca400b0..f3a84ad4e11ab0d4fad00180fb8e009e92a5fa9b 100644
--- a/lib/modules/Protocols.pmod/IRC.pmod/Error.pmod
+++ b/lib/modules/Protocols.pmod/IRC.pmod/Error.pmod
@@ -1,3 +1,4 @@
+#pike __VERSION__
 
 class StdErr
 {
diff --git a/lib/modules/Protocols.pmod/IRC.pmod/Raw.pike b/lib/modules/Protocols.pmod/IRC.pmod/Raw.pike
index 5b3927bc5fadc989057e1b4cc7aaf7890b2fdaea..e8dd50013242b23e1f98a38ccdd0e118ff2702e7 100644
--- a/lib/modules/Protocols.pmod/IRC.pmod/Raw.pike
+++ b/lib/modules/Protocols.pmod/IRC.pmod/Raw.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 import ".";
 
 object con;
diff --git a/lib/modules/Protocols.pmod/IRC.pmod/Requests.pmod b/lib/modules/Protocols.pmod/IRC.pmod/Requests.pmod
index 46aae2e20ddc5f12e2d5d5e2541086d1b8d84fa4..2cba2f36186fd088a605d11b1d94c2f006945ed5 100644
--- a/lib/modules/Protocols.pmod/IRC.pmod/Requests.pmod
+++ b/lib/modules/Protocols.pmod/IRC.pmod/Requests.pmod
@@ -1,3 +1,4 @@
+#pike __VERSION__
 
 /*
 PASS gurka
@@ -5,7 +6,7 @@ NICK Mirar^
 USER mirar mistel.idonex.se irc.starchat.net :Mirar is testing
 */
 
-string __cvs_id="$Id: Requests.pmod,v 1.1 1999/10/27 18:01:16 mirar Exp $";
+string __cvs_id="$Id: Requests.pmod,v 1.2 2000/09/26 18:59:58 hubbe Exp $";
 
 import ".";
 
diff --git a/lib/modules/Protocols.pmod/Ident.pmod b/lib/modules/Protocols.pmod/Ident.pmod
index b11b4a28e247e27584b5a46fb0f0ffb06cfda513..640b0636130496fb2ced75f5f045aa7bfe7754c1 100644
--- a/lib/modules/Protocols.pmod/Ident.pmod
+++ b/lib/modules/Protocols.pmod/Ident.pmod
@@ -1,7 +1,8 @@
 // An implementation of the IDENT protocol, specified in RFC 931.
 //
-// $Id: Ident.pmod,v 1.7 1999/01/30 01:35:41 grubba Exp $
+// $Id: Ident.pmod,v 1.8 2000/09/26 18:59:51 hubbe Exp $
 
+#pike __VERSION__
 
 // #define IDENT_DEBUG
 
diff --git a/lib/modules/Protocols.pmod/LDAP.pmod/client.pike b/lib/modules/Protocols.pmod/LDAP.pmod/client.pike
index 8d2568792ad3c47a8f15f6bb0f085e37669547f2..cc501b537ef261c21a0fda4111f2c0bb74cab3fc 100644
--- a/lib/modules/Protocols.pmod/LDAP.pmod/client.pike
+++ b/lib/modules/Protocols.pmod/LDAP.pmod/client.pike
@@ -1,6 +1,8 @@
+#pike __VERSION__
+
 // LDAP client protocol implementation for Pike.
 //
-// $Id: client.pike,v 1.18 2000/07/25 09:59:19 hop Exp $
+// $Id: client.pike,v 1.19 2000/09/26 18:59:58 hubbe Exp $
 //
 // Honza Petrous, hop@unibase.cz
 //
diff --git a/lib/modules/Protocols.pmod/LDAP.pmod/ldap_privates.pmod b/lib/modules/Protocols.pmod/LDAP.pmod/ldap_privates.pmod
index 5be60addb886de6fa1e0973a090b65ad104a15b3..0cdafc478c60cc78e54f25900cf99eb7e05f5275 100644
--- a/lib/modules/Protocols.pmod/LDAP.pmod/ldap_privates.pmod
+++ b/lib/modules/Protocols.pmod/LDAP.pmod/ldap_privates.pmod
@@ -1,6 +1,8 @@
+#pike __VERSION__
+
 // LDAP client protocol implementation for Pike.
 //
-// $Id: ldap_privates.pmod,v 1.4 2000/09/05 15:06:09 per Exp $
+// $Id: ldap_privates.pmod,v 1.5 2000/09/26 18:59:58 hubbe Exp $
 //
 // Honza Petrous, hop@unibase.cz
 //
diff --git a/lib/modules/Protocols.pmod/LDAP.pmod/protocol.pike b/lib/modules/Protocols.pmod/LDAP.pmod/protocol.pike
index e9f28835d408356c72ccf21f05210602b0f7f664..a6f3464c7e48557b6b8161105bffcd2a700fe7f4 100644
--- a/lib/modules/Protocols.pmod/LDAP.pmod/protocol.pike
+++ b/lib/modules/Protocols.pmod/LDAP.pmod/protocol.pike
@@ -1,6 +1,8 @@
+#pike __VERSION__
+
 // LDAP client protocol implementation for Pike.
 //
-// $Id: protocol.pike,v 1.4 1999/12/30 15:37:26 grubba Exp $
+// $Id: protocol.pike,v 1.5 2000/09/26 18:59:59 hubbe Exp $
 //
 // Honza Petrous, hop@unibase.cz
 //
diff --git a/lib/modules/Protocols.pmod/LPD.pmod b/lib/modules/Protocols.pmod/LPD.pmod
index e72213608a2a50256c4d0957189b3a44c0a64c81..a63e996f4d224710a23395b29f87e83b8b6cc81e 100644
--- a/lib/modules/Protocols.pmod/LPD.pmod
+++ b/lib/modules/Protocols.pmod/LPD.pmod
@@ -3,9 +3,11 @@
 // This is a module for pike.
 // 3 July 1998 <hww3@riverweb.com> Bill Welliver
 //
-// $Id: LPD.pmod,v 1.4 1999/08/20 05:01:58 hubbe Exp $
+// $Id: LPD.pmod,v 1.5 2000/09/26 18:59:51 hubbe Exp $
 //
 
+#pike __VERSION__
+
 class client {
   string host;
   int port;
diff --git a/lib/modules/Protocols.pmod/Line.pmod b/lib/modules/Protocols.pmod/Line.pmod
index 50dd4a3bf45ed8b397c90b61c5084c46b4783e71..16613891240a7412d39df6e33e1da3448fa00b0f 100644
--- a/lib/modules/Protocols.pmod/Line.pmod
+++ b/lib/modules/Protocols.pmod/Line.pmod
@@ -1,11 +1,13 @@
 /*
- * $Id: Line.pmod,v 1.9 2000/05/07 18:36:36 nilsson Exp $
+ * $Id: Line.pmod,v 1.10 2000/09/26 18:59:52 hubbe Exp $
  *
  * Line-buffered protocol handling.
  *
  * Henrik Grubbstr�m 1998-05-27
  */
 
+#pike __VERSION__
+
 class simple
 {
   static object con;
diff --git a/lib/modules/Protocols.pmod/LysKOM.pmod/ASync.pmod b/lib/modules/Protocols.pmod/LysKOM.pmod/ASync.pmod
index 6062d4e66c1589b372d313a54248530206188fe5..d981987c7588f738ae704eafa49ef8ede94265fb 100644
--- a/lib/modules/Protocols.pmod/LysKOM.pmod/ASync.pmod
+++ b/lib/modules/Protocols.pmod/LysKOM.pmod/ASync.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 import .ProtocolTypes;
 
 /* 0 async-new-text-old */
diff --git a/lib/modules/Protocols.pmod/LysKOM.pmod/Connection.pike b/lib/modules/Protocols.pmod/LysKOM.pmod/Connection.pike
index bca2b828b3bcffea973d4c9326b75bf8e8a4e465..3d71069e8ca46fc25f79e4bf0b3584675bc61e62 100644
--- a/lib/modules/Protocols.pmod/LysKOM.pmod/Connection.pike
+++ b/lib/modules/Protocols.pmod/LysKOM.pmod/Connection.pike
@@ -1,4 +1,4 @@
-//  $Id: Connection.pike,v 1.5 2000/08/03 03:32:42 jhs Exp $
+//  $Id: Connection.pike,v 1.6 2000/09/26 18:59:59 hubbe Exp $
 //! module Protocols
 //! submodule LysKOM
 //! class Session
@@ -30,6 +30,8 @@
 //!	initialised <link to=Protocols.LysKOM.Request>request</link> object.
 //!
 
+#pike __VERSION__
+
 import ".";
 
 object this=this_object();
diff --git a/lib/modules/Protocols.pmod/LysKOM.pmod/Helper.pmod b/lib/modules/Protocols.pmod/LysKOM.pmod/Helper.pmod
index 68370fb8a2889f46ae65a714e8d4b5f7c4996790..6351e7e370ccc527b7e79da63220c28a4f6d5ed2 100644
--- a/lib/modules/Protocols.pmod/LysKOM.pmod/Helper.pmod
+++ b/lib/modules/Protocols.pmod/LysKOM.pmod/Helper.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 constant CONNECTION_CLOSED=-100;
 
 string encode(mixed ... z) // encode arguments
diff --git a/lib/modules/Protocols.pmod/LysKOM.pmod/ProtocolTypes.pmod b/lib/modules/Protocols.pmod/LysKOM.pmod/ProtocolTypes.pmod
index 4a42e78a1cd399b9ccd14ece7b01f37d477e9233..a24ed1d65eed25d4be4143aabd4e982f4f4713dd 100644
--- a/lib/modules/Protocols.pmod/LysKOM.pmod/ProtocolTypes.pmod
+++ b/lib/modules/Protocols.pmod/LysKOM.pmod/ProtocolTypes.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 import .Helper;
 
 
diff --git a/lib/modules/Protocols.pmod/LysKOM.pmod/Raw.pike b/lib/modules/Protocols.pmod/LysKOM.pmod/Raw.pike
index c1319d544fab016f5de6e254dbc116da30682b9b..4290bc822996a4a8f148ccf742fbee3048217ce4 100644
--- a/lib/modules/Protocols.pmod/LysKOM.pmod/Raw.pike
+++ b/lib/modules/Protocols.pmod/LysKOM.pmod/Raw.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 import .Helper;
 
 /* debug */
diff --git a/lib/modules/Protocols.pmod/LysKOM.pmod/Request.pmod b/lib/modules/Protocols.pmod/LysKOM.pmod/Request.pmod
index 0b12bf636d5f9360f07eb284987b247003815a66..5c894312a1ee5ec88b9ceda033c844a0600bb71e 100644
--- a/lib/modules/Protocols.pmod/LysKOM.pmod/Request.pmod
+++ b/lib/modules/Protocols.pmod/LysKOM.pmod/Request.pmod
@@ -1,4 +1,6 @@
-//  $Id: Request.pmod,v 1.5 1999/09/28 02:08:22 js Exp $
+#pike __VERSION__
+
+//  $Id: Request.pmod,v 1.6 2000/09/26 19:00:01 hubbe Exp $
 //! module Protocols
 //! submodule LysKOM
 //! submodule Request
diff --git a/lib/modules/Protocols.pmod/LysKOM.pmod/Session.pike b/lib/modules/Protocols.pmod/LysKOM.pmod/Session.pike
index ec2148cc9dfb554dcd4896fe10516c19d08400c2..29a40f874870b912ca2ddb6422c9c2973b693d68 100644
--- a/lib/modules/Protocols.pmod/LysKOM.pmod/Session.pike
+++ b/lib/modules/Protocols.pmod/LysKOM.pmod/Session.pike
@@ -1,4 +1,6 @@
-//  $Id: Session.pike,v 1.19 2000/08/05 05:18:47 jhs Exp $
+#pike __VERSION__
+
+//  $Id: Session.pike,v 1.20 2000/09/26 19:00:01 hubbe Exp $
 //! module Protocols
 //! submodule LysKOM
 //! class Session
diff --git a/lib/modules/Protocols.pmod/LysKOM.pmod/Threads.pike b/lib/modules/Protocols.pmod/LysKOM.pmod/Threads.pike
index 980988090f4e83a22d7203d240077fcd6a29f28e..ae0cfae7b35a5ca1f59128b8014a0e8a70d1b625 100644
--- a/lib/modules/Protocols.pmod/LysKOM.pmod/Threads.pike
+++ b/lib/modules/Protocols.pmod/LysKOM.pmod/Threads.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 import ".";
 
 class Thread
diff --git a/lib/modules/Protocols.pmod/NNTP.pmod b/lib/modules/Protocols.pmod/NNTP.pmod
index b024f300d239a0a71da354cb7ad3566eb501bab3..37676d60ff624927e8c8211eceb092d292750cc6 100644
--- a/lib/modules/Protocols.pmod/NNTP.pmod
+++ b/lib/modules/Protocols.pmod/NNTP.pmod
@@ -1,5 +1,7 @@
 // Not finished - Fredrik Hubinette
 
+#pike __VERSION__
+
 class protocol
 {
   inherit Stdio.FILE : news;
diff --git a/lib/modules/Protocols.pmod/Ports.pmod b/lib/modules/Protocols.pmod/Ports.pmod
index 506a8952f81ca66133d37d7c0aa0c9469d96ffb8..19d7939337a824f3b0eb5825a66e23e4753569e1 100644
--- a/lib/modules/Protocols.pmod/Ports.pmod
+++ b/lib/modules/Protocols.pmod/Ports.pmod
@@ -1,11 +1,13 @@
 /*
- * $Id: Ports.pmod,v 1.5 2000/01/27 10:15:18 jhs Exp $
+ * $Id: Ports.pmod,v 1.6 2000/09/26 18:59:52 hubbe Exp $
  *
  * IP port assignments
  *
  * Henrik Grubbstr�m 1998-06-23
  */
 
+#pike __VERSION__
+
 // Contains all UDP ports assigned for private use as of RFC 1700
 constant private_udp = ([
   "mail":              24,	//    any private mail system
diff --git a/lib/modules/Protocols.pmod/SMTP.pmod b/lib/modules/Protocols.pmod/SMTP.pmod
index 6aed563fdf550cfe3daa08a5cc955130ddaee1a2..bfb5315cea58a546be369ba3e72d1a895354bd01 100644
--- a/lib/modules/Protocols.pmod/SMTP.pmod
+++ b/lib/modules/Protocols.pmod/SMTP.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 class protocol
 {
   // Maybe this should be the other way around?
diff --git a/lib/modules/Protocols.pmod/TELNET.pmod b/lib/modules/Protocols.pmod/TELNET.pmod
index 3bd1e18ec34ac6e9275a493849d77be7cec72f3b..0724d887a93ce23084b2e4f923ca5ef2426c1716 100644
--- a/lib/modules/Protocols.pmod/TELNET.pmod
+++ b/lib/modules/Protocols.pmod/TELNET.pmod
@@ -1,11 +1,13 @@
 //
-// $Id: TELNET.pmod,v 1.9 2000/03/30 21:21:46 grubba Exp $
+// $Id: TELNET.pmod,v 1.10 2000/09/26 18:59:53 hubbe Exp $
 //
 // The TELNET protocol as described by RFC 764 and others.
 //
 // Henrik Grubbstr�m <grubba@idonex.se> 1998-04-04
 //
 
+#pike __VERSION__
+
 // #define TELNET_DEBUG
 
 #ifdef TELNET_DEBUG
diff --git a/lib/modules/Protocols.pmod/X.pmod/Atom.pmod b/lib/modules/Protocols.pmod/X.pmod/Atom.pmod
index e46e63eda3eedf485cc74780ca70d807c4957866..57f133f277f419292567ff56ca590b98806332ae 100644
--- a/lib/modules/Protocols.pmod/X.pmod/Atom.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/Atom.pmod
@@ -1,6 +1,6 @@
 /* Atom.pmod
  *
- * X Atoms $Id: Atom.pmod,v 1.5 1998/04/21 02:55:59 per Exp $
+ * X Atoms $Id: Atom.pmod,v 1.6 2000/09/26 19:00:02 hubbe Exp $
  *
  */
 
@@ -29,6 +29,8 @@
  * mailing list, pike@idonex.se, or to the athors (see AUTHORS for
  * email addresses. */
 
+#pike __VERSION__
+
 class Atom
 {
   object display;
diff --git a/lib/modules/Protocols.pmod/X.pmod/Auth.pmod b/lib/modules/Protocols.pmod/X.pmod/Auth.pmod
index 4ebe2151e7a8f193dcb0c322a163fb41cd2fdd2b..bed5f0a7c64d057b7b6926e599f34046bb2116e1 100644
--- a/lib/modules/Protocols.pmod/X.pmod/Auth.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/Auth.pmod
@@ -1,6 +1,6 @@
 /* Auth.pmod
  *
- * $Id: Auth.pmod,v 1.7 2000/02/26 01:07:31 hubbe Exp $
+ * $Id: Auth.pmod,v 1.8 2000/09/26 19:00:02 hubbe Exp $
  */
 
 /*
@@ -28,6 +28,8 @@
  * mailing list, pike@idonex.se, or to the athors (see AUTHORS for
  * email addresses. */
 
+#pike __VERSION__
+
 class auth_file
 {
   mapping(int:mapping(string:mapping)) auth = ([]);
diff --git a/lib/modules/Protocols.pmod/X.pmod/Extensions.pmod b/lib/modules/Protocols.pmod/X.pmod/Extensions.pmod
index e3918aa28a90bcf19770a63bb5a194ac06b3804a..3b41819d90678a5b9d7afd509cbb43f4d2b69dad 100644
--- a/lib/modules/Protocols.pmod/X.pmod/Extensions.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/Extensions.pmod
@@ -1,6 +1,6 @@
 /* Shaped windows.
  *
- * $Id: Extensions.pmod,v 1.8 1998/04/21 03:00:30 per Exp $
+ * $Id: Extensions.pmod,v 1.9 2000/09/26 19:00:03 hubbe Exp $
 
 /*
  *    Protocols.X, a Pike interface to the X Window System
@@ -27,6 +27,8 @@
  * mailing list, pike@idonex.se, or to the athors (see AUTHORS for
  * email addresses. */
 
+#pike __VERSION__
+
 static class extension
 {
   object dpy;
diff --git a/lib/modules/Protocols.pmod/X.pmod/Requests.pmod b/lib/modules/Protocols.pmod/X.pmod/Requests.pmod
index bd9ed13611c19aa9d34f1ddb6b07745388c1bc11..7d53f58b5677f84739ef468824b1ce3d2b95f6cb 100644
--- a/lib/modules/Protocols.pmod/X.pmod/Requests.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/Requests.pmod
@@ -1,6 +1,6 @@
 /* Requests.pike
  *
- * $Id: Requests.pmod,v 1.26 1998/04/21 02:56:01 per Exp $
+ * $Id: Requests.pmod,v 1.27 2000/09/26 19:00:03 hubbe Exp $
  */
 
 /*
@@ -28,6 +28,8 @@
  * mailing list, pike@idonex.se, or to the athors (see AUTHORS for
  * email addresses. */
 
+#pike __VERSION__
+
 #include "error.h"
 
 class request
diff --git a/lib/modules/Protocols.pmod/X.pmod/Types.pmod b/lib/modules/Protocols.pmod/X.pmod/Types.pmod
index 4d4f40f62c83aef0209f6f85a7b226ee991053d0..c702abc86ecf7989853e1fa264f248ab140aba05 100644
--- a/lib/modules/Protocols.pmod/X.pmod/Types.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/Types.pmod
@@ -1,6 +1,6 @@
 /* Types.pmod
  *
- * $Id: Types.pmod,v 1.32 1998/04/21 02:56:02 per Exp $
+ * $Id: Types.pmod,v 1.33 2000/09/26 19:00:03 hubbe Exp $
  */
 
 /*
@@ -28,6 +28,8 @@
  * mailing list, pike@idonex.se, or to the athors (see AUTHORS for
  * email addresses. */
 
+#pike __VERSION__
+
 #include "error.h"
 
 class XResource
diff --git a/lib/modules/Protocols.pmod/X.pmod/XImage.pmod b/lib/modules/Protocols.pmod/X.pmod/XImage.pmod
index d6f65b9a4d7c4bbdcea4ec004eae0705042b8732..31f30dee9c33901b1bf33afb273157f93149cb0c 100644
--- a/lib/modules/Protocols.pmod/X.pmod/XImage.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/XImage.pmod
@@ -1,6 +1,6 @@
 /* XImage.pmod
  *
- * $Id: XImage.pmod,v 1.14 2000/05/01 19:30:56 grubba Exp $
+ * $Id: XImage.pmod,v 1.15 2000/09/26 19:00:04 hubbe Exp $
  */
 
 /*
@@ -28,6 +28,8 @@
  * mailing list, pike@idonex.se, or to the athors (see AUTHORS for
  * email addresses. */
 
+#pike __VERSION__
+
 #include "error.h"
 
 // Image --> X module.
diff --git a/lib/modules/Protocols.pmod/X.pmod/XTools.pmod b/lib/modules/Protocols.pmod/X.pmod/XTools.pmod
index f2ac551f558ebf73b918f686ecb84d995f0778cd..29eca3c89b53969cd1413c9d231711ebd7881582 100644
--- a/lib/modules/Protocols.pmod/X.pmod/XTools.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/XTools.pmod
@@ -1,6 +1,6 @@
 /* XTools.pmod
  *
- * $Id: XTools.pmod,v 1.4 1998/04/19 00:31:05 grubba Exp $
+ * $Id: XTools.pmod,v 1.5 2000/09/26 19:00:04 hubbe Exp $
  *
  * Various tools that are higher level than raw X, but are lower level
  * than widgets.
@@ -31,6 +31,8 @@
  * mailing list, pike@idonex.se, or to the athors (see AUTHORS for
  * email addresses. */
 
+#pike __VERSION__
+
 /* Steals and processes mousebutton events */
 class Button
 {
diff --git a/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod b/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod
index 57b826403259505045eba3a8ab0bf9ba773e8ecc..862f87dc0d10e99fc2724de662a77b75fa6f4d45 100644
--- a/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod
@@ -1,6 +1,6 @@
 /* Xlib.pmod
  *
- * $Id: Xlib.pmod,v 1.39 2000/05/07 18:36:59 nilsson Exp $
+ * $Id: Xlib.pmod,v 1.40 2000/09/26 19:00:04 hubbe Exp $
  */
 
 /*
@@ -28,6 +28,8 @@
  * mailing list, pike@idonex.se, or to the athors (see AUTHORS for
  * email addresses. */
 
+#pike __VERSION__
+
 #include "error.h"
 
 // #define DEBUG
diff --git a/lib/modules/Protocols.pmod/X.pmod/_Types.pmod b/lib/modules/Protocols.pmod/X.pmod/_Types.pmod
index 7fe1480fc15fb8be5f2e9299b9d1652806de503e..6b6c0dd03a1a3a6bac2775f9584034744ff2fb03 100644
--- a/lib/modules/Protocols.pmod/X.pmod/_Types.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/_Types.pmod
@@ -2,7 +2,7 @@
  *
  * Kludge for pike-0.5
  *
- * $Id: _Types.pmod,v 1.3 1998/04/19 00:31:08 grubba Exp $
+ * $Id: _Types.pmod,v 1.4 2000/09/26 19:00:05 hubbe Exp $
  */
 
 /*
@@ -30,6 +30,8 @@
  * mailing list, pike@idonex.se, or to the athors (see AUTHORS for
  * email addresses. */
 
+#pike __VERSION__
+
 program pixmap_class;
 
 program get_pixmap_class() { return pixmap_class; }
diff --git a/lib/modules/Protocols.pmod/X.pmod/_Xlib.pmod b/lib/modules/Protocols.pmod/X.pmod/_Xlib.pmod
index 98872e9aff95a6c786a63a56eb451bac8a7aaf3a..c26e3643467f5faed492a676287eb2b616d0f688 100644
--- a/lib/modules/Protocols.pmod/X.pmod/_Xlib.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/_Xlib.pmod
@@ -1,6 +1,6 @@
 /* _Xlib.pmod
  *
- * $Id: _Xlib.pmod,v 1.13 1998/04/19 00:31:09 grubba Exp $
+ * $Id: _Xlib.pmod,v 1.14 2000/09/26 19:00:05 hubbe Exp $
  *
  * Kluge, should be in Xlib.pmod
  */
@@ -30,6 +30,8 @@
  * mailing list, pike@idonex.se, or to the athors (see AUTHORS for
  * email addresses. */
 
+#pike __VERSION__
+
 object display_re = Regexp("^([^:]*):([0-9]+)(.[0-9]+|)$");
 
 string pad(string s)
diff --git a/lib/modules/Protocols.pmod/X.pmod/db/convert_compose.pike b/lib/modules/Protocols.pmod/X.pmod/db/convert_compose.pike
index 0a557698214b9b53da811d203d4b2aeccc8a79b0..b65d987252265bd9dee0d825cea3d87fe301f096 100644
--- a/lib/modules/Protocols.pmod/X.pmod/db/convert_compose.pike
+++ b/lib/modules/Protocols.pmod/X.pmod/db/convert_compose.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 
 void main()
 {
diff --git a/lib/modules/Remote.pmod/Client.pike b/lib/modules/Remote.pmod/Client.pike
index 213bd67c6b4b8d0aa86e2ef65c66425ae68e1133..eb85348b53a135107f5ad71395712fcc9e5c8799 100644
--- a/lib/modules/Remote.pmod/Client.pike
+++ b/lib/modules/Remote.pmod/Client.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 
 #include "remote.h"
 
diff --git a/lib/modules/Remote.pmod/Server.pike b/lib/modules/Remote.pmod/Server.pike
index 31ccc0e0af9bee9550b0145d78d2ae31ff943edd..0b5e9a19ea8c3ef959c7bc41cd77eb04345cea07 100644
--- a/lib/modules/Remote.pmod/Server.pike
+++ b/lib/modules/Remote.pmod/Server.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 
 #include "remote.h"
 
diff --git a/lib/modules/Remote.pmod/call.pike b/lib/modules/Remote.pmod/call.pike
index 6ddd6c7308bee896291ad940a554d6e8f27bba8e..826e9088f9b011f4a0a4b6bc37e93d0363016019 100644
--- a/lib/modules/Remote.pmod/call.pike
+++ b/lib/modules/Remote.pmod/call.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 
 #include "remote.h"
 
diff --git a/lib/modules/Remote.pmod/connection.pike b/lib/modules/Remote.pmod/connection.pike
index cb3fefdd1c853c24596e855596c85bd4ffac13e1..f47d40690ce1ff62a701c3a37c6bed05f107c28d 100644
--- a/lib/modules/Remote.pmod/connection.pike
+++ b/lib/modules/Remote.pmod/connection.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 #include "remote.h"
 
 #ifdef REMOTE_DEBUG
diff --git a/lib/modules/Remote.pmod/context.pike b/lib/modules/Remote.pmod/context.pike
index 8f5825c1eb3089015e6ca62adceebbd34ecdc4d1..89ca4722835a539678a63c764c2c5bbe07e86b7a 100644
--- a/lib/modules/Remote.pmod/context.pike
+++ b/lib/modules/Remote.pmod/context.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 
 #include "remote.h"
 
diff --git a/lib/modules/Remote.pmod/obj.pike b/lib/modules/Remote.pmod/obj.pike
index bbc67f7c762dabb0c6a1cdd79b19d4c9adbdf039..47f2ac01d6631dcad042afa103f4776e3c9b2e46 100644
--- a/lib/modules/Remote.pmod/obj.pike
+++ b/lib/modules/Remote.pmod/obj.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 
 #include "remote.h"
 
diff --git a/lib/modules/Sql.pmod/msql.pike b/lib/modules/Sql.pmod/msql.pike
index 2deb703b63a02484c9506732b1a002559d8d5eaa..413b6c140fdfde2388201645f9a6b60f40d2fc4b 100644
--- a/lib/modules/Sql.pmod/msql.pike
+++ b/lib/modules/Sql.pmod/msql.pike
@@ -1,5 +1,7 @@
 // Msql module support stuff, (C) 1997 Francesco Chemolli <kinkie@kame.usr.dsi.unimi.it>
 
+#pike __VERSION__
+
 #if constant(Msql.msql)
 inherit Msql.msql;
 
diff --git a/lib/modules/Sql.pmod/mysql.pike b/lib/modules/Sql.pmod/mysql.pike
index fb87254376d856a4a88079e18241efa14572e370..ed79960a05cc761603bdcbc999067a210c11969a 100644
--- a/lib/modules/Sql.pmod/mysql.pike
+++ b/lib/modules/Sql.pmod/mysql.pike
@@ -1,12 +1,12 @@
 /*
- * $Id: mysql.pike,v 1.10 2000/04/30 16:29:53 kinkie Exp $
+ * $Id: mysql.pike,v 1.11 2000/09/26 19:00:08 hubbe Exp $
  *
  * Glue for the Mysql-module
  */
 
 //.
 //. File:	mysql.pike
-//. RCSID:	$Id: mysql.pike,v 1.10 2000/04/30 16:29:53 kinkie Exp $
+//. RCSID:	$Id: mysql.pike,v 1.11 2000/09/26 19:00:08 hubbe Exp $
 //. Author:	Henrik Grubbstr�m (grubba@idonex.se)
 //.
 //. Synopsis:	Implements the glue to the Mysql-module.
@@ -17,6 +17,8 @@
 //. SQL module.
 //.
 
+#pike __VERSION__
+
 #if constant(Mysql.mysql)
 
 inherit Mysql.mysql;
diff --git a/lib/modules/Sql.pmod/mysql_result.pike b/lib/modules/Sql.pmod/mysql_result.pike
index 20046341ce5d7293d4246580584ff43631fff284..9522cda4b8439f8a8929a59aaa87eefcb0db1f54 100644
--- a/lib/modules/Sql.pmod/mysql_result.pike
+++ b/lib/modules/Sql.pmod/mysql_result.pike
@@ -1,9 +1,11 @@
 /*
- * $Id: mysql_result.pike,v 1.2 1998/10/17 03:07:12 grubba Exp $
+ * $Id: mysql_result.pike,v 1.3 2000/09/26 19:00:09 hubbe Exp $
  *
  * Glue for the Mysql-module
  */
 
+#pike __VERSION__
+
 #if constant(Mysql.mysql_result)
 inherit Mysql.mysql_result;
 #else /* !constant(Mysql.mysql_result) */
diff --git a/lib/modules/Sql.pmod/odbc.pike b/lib/modules/Sql.pmod/odbc.pike
index 9cf37c689a52b45735c2c105a4f488e0628a97cd..f3bd0aa4c15bccf88109aa278a7d72991c7f1541 100644
--- a/lib/modules/Sql.pmod/odbc.pike
+++ b/lib/modules/Sql.pmod/odbc.pike
@@ -1,9 +1,11 @@
 /*
- * $Id: odbc.pike,v 1.5 2000/04/29 00:38:18 kinkie Exp $
+ * $Id: odbc.pike,v 1.6 2000/09/26 19:00:09 hubbe Exp $
  *
  * Glue for the ODBC-module
  */
 
+#pike __VERSION__
+
 #if constant(Odbc.odbc)
 inherit Odbc.odbc;
 
diff --git a/lib/modules/Sql.pmod/odbc_result.pike b/lib/modules/Sql.pmod/odbc_result.pike
index 6f3027945ca808b5887ab91027a77e55b543ca16..584b93ba8b7fd45c0035f08ae660e4854a221290 100644
--- a/lib/modules/Sql.pmod/odbc_result.pike
+++ b/lib/modules/Sql.pmod/odbc_result.pike
@@ -1,9 +1,11 @@
 /*
- * $Id: odbc_result.pike,v 1.2 1998/10/17 03:01:59 grubba Exp $
+ * $Id: odbc_result.pike,v 1.3 2000/09/26 19:00:09 hubbe Exp $
  *
  * Glue for the ODBC-module
  */
 
+#pike __VERSION__
+
 #if constant(Odbc.odbc_result)
 inherit Odbc.odbc_result;
 #else /* !constant(Odbc.odbc_result) */
diff --git a/lib/modules/Sql.pmod/oracle.pike b/lib/modules/Sql.pmod/oracle.pike
index e71e6a792544102cd15039d46a7af0125c91a247..956543c254d15f6f86f51a2cdcdce6e5ce6af8cc 100644
--- a/lib/modules/Sql.pmod/oracle.pike
+++ b/lib/modules/Sql.pmod/oracle.pike
@@ -1,9 +1,11 @@
 /*
- * $Id: oracle.pike,v 1.4 1999/08/31 00:24:16 grubba Exp $
+ * $Id: oracle.pike,v 1.5 2000/09/26 19:00:10 hubbe Exp $
  *
  * Glue for the Oracle-module
  */
 
+#pike __VERSION__
+
 #if constant(Oracle.oracle)
 inherit Oracle.oracle;
 
diff --git a/lib/modules/Sql.pmod/postgres.pike b/lib/modules/Sql.pmod/postgres.pike
index b41827c9cbfbe04e57951b31c336b48bd81c12ae..0c9936b9f43a9b85964997ce5e229eaf78942262 100644
--- a/lib/modules/Sql.pmod/postgres.pike
+++ b/lib/modules/Sql.pmod/postgres.pike
@@ -2,10 +2,12 @@
  * This is part of the Postgres module for Pike.
  * (C) 1997 Francesco Chemolli <kinkie@kame.usr.dsi.unimi.it>
  *
- * $Id: postgres.pike,v 1.9 2000/04/29 00:38:18 kinkie Exp $
+ * $Id: postgres.pike,v 1.10 2000/09/26 19:00:10 hubbe Exp $
  *
  */
 
+#pike __VERSION__
+
 #if constant(Postgres.postgres)
 
 #define ERROR(X) throw (({X,backtrace()}))
diff --git a/lib/modules/Sql.pmod/postgres_result.pike b/lib/modules/Sql.pmod/postgres_result.pike
index 0667da82541374fefd2948f2fa2c3ad29cfd40c4..e39afca091bebc2ec3295a4a7e15997f398acdc5 100644
--- a/lib/modules/Sql.pmod/postgres_result.pike
+++ b/lib/modules/Sql.pmod/postgres_result.pike
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 #if constant(Postgres.postgres_result)
 inherit Postgres.postgres_result;
 #else /* !constant(Postgres.postgres_result) */
diff --git a/lib/modules/Sql.pmod/rsql.pike b/lib/modules/Sql.pmod/rsql.pike
index df43fbf751f541b5e5a3c00250b79bf415386493..a3fcb88724d328e108c74399282e4ee8542eed9d 100644
--- a/lib/modules/Sql.pmod/rsql.pike
+++ b/lib/modules/Sql.pmod/rsql.pike
@@ -1,5 +1,7 @@
 // Remote SQL server interface
 
+#pike __VERSION__
+
 #define RSQL_PORT 3994
 #define RSQL_VERSION 1
 
diff --git a/lib/modules/Sql.pmod/sql.pike b/lib/modules/Sql.pmod/sql.pike
index 2bdc597a73c55cb179811d7f515c3b22e2e9c061..641581186e956a4fc462ab2d5d014138d4ee23fe 100644
--- a/lib/modules/Sql.pmod/sql.pike
+++ b/lib/modules/Sql.pmod/sql.pike
@@ -1,14 +1,16 @@
 /*
- * $Id: sql.pike,v 1.38 2000/04/30 16:32:34 kinkie Exp $
+ * $Id: sql.pike,v 1.39 2000/09/26 19:00:11 hubbe Exp $
  *
  * Implements the generic parts of the SQL-interface
  *
  * Henrik Grubbstr�m 1996-01-09
  */
 
+#pike __VERSION__
+
 //.
 //. File:	sql.pike
-//. RCSID:	$Id: sql.pike,v 1.38 2000/04/30 16:32:34 kinkie Exp $
+//. RCSID:	$Id: sql.pike,v 1.39 2000/09/26 19:00:11 hubbe Exp $
 //. Author:	Henrik Grubbstr�m (grubba@idonex.se)
 //.
 //. Synopsis:	Implements the generic parts of the SQL-interface.
diff --git a/lib/modules/Sql.pmod/sql_result.pike b/lib/modules/Sql.pmod/sql_result.pike
index c1ca24c788b892591193f46cc005541b7e95705e..0e8fdee7cbc8b7513277cef2e3d4c9c49c44192d 100644
--- a/lib/modules/Sql.pmod/sql_result.pike
+++ b/lib/modules/Sql.pmod/sql_result.pike
@@ -1,14 +1,16 @@
 /*
- * $Id: sql_result.pike,v 1.5 2000/03/24 01:23:04 hubbe Exp $
+ * $Id: sql_result.pike,v 1.6 2000/09/26 19:00:12 hubbe Exp $
  *
  * Implements the generic result module of the SQL-interface
  *
  * Henrik Grubbstr�m 1996-01-09
  */
 
+#pike __VERSION__
+
 //.
 //. File:	sql_result.pike
-//. RCSID:	$Id: sql_result.pike,v 1.5 2000/03/24 01:23:04 hubbe Exp $
+//. RCSID:	$Id: sql_result.pike,v 1.6 2000/09/26 19:00:12 hubbe Exp $
 //. Author:	Henrik Grubbstr�m (grubba@infovav.se)
 //.
 //. Synopsis:	Implements the generic result of the SQL-interface.
diff --git a/lib/modules/Sql.pmod/sql_util.pmod b/lib/modules/Sql.pmod/sql_util.pmod
index f099d6894e177a8e4bbbb55bb4841acfef6cf680..08db439005643d325d55e1db7af4fc15bae3b60f 100644
--- a/lib/modules/Sql.pmod/sql_util.pmod
+++ b/lib/modules/Sql.pmod/sql_util.pmod
@@ -1,5 +1,5 @@
 /*
- * $Id: sql_util.pmod,v 1.4 2000/04/29 00:38:18 kinkie Exp $
+ * $Id: sql_util.pmod,v 1.5 2000/09/26 19:00:12 hubbe Exp $
  *
  * Some SQL utility functions.
  * They are kept here to avoid circular references.
@@ -7,9 +7,11 @@
  * Henrik Grubbstr�m 1999-07-01
  */
 
+#pike __VERSION__
+
 //.
 //. File:	sql_util.pmod
-//. RCSID:	$Id: sql_util.pmod,v 1.4 2000/04/29 00:38:18 kinkie Exp $
+//. RCSID:	$Id: sql_util.pmod,v 1.5 2000/09/26 19:00:12 hubbe Exp $
 //. Author:	Henrik Grubbstr�m (grubba@idonex.se)
 //.
 //. Synopsis:	Some SQL utility functions
diff --git a/lib/modules/Sql.pmod/sybase.pike b/lib/modules/Sql.pmod/sybase.pike
index c38988315ab09a2161134cb6182d324299d8d4e8..12cbca09a4b53ed2c341e86f78834846a7cfe629 100644
--- a/lib/modules/Sql.pmod/sybase.pike
+++ b/lib/modules/Sql.pmod/sybase.pike
@@ -3,10 +3,12 @@
  * By Francesco Chemolli <kinkie@roxen.com> 10/12/1999
  * (C) Roxen IS
  * 
- * $Id: sybase.pike,v 1.3 2000/04/29 00:38:18 kinkie Exp $
+ * $Id: sybase.pike,v 1.4 2000/09/26 19:00:12 hubbe Exp $
  *
  */
 
+#pike __VERSION__
+
 #if constant(sybase.sybase)
 
 inherit sybase.sybase:mo;
diff --git a/lib/modules/Stack.pmod b/lib/modules/Stack.pmod
index 5c7743990b842291a0ebfe9d612b6ceb3ce7409a..ae008ae07874a6a9a633aa464cc7504ba5118fd9 100644
--- a/lib/modules/Stack.pmod
+++ b/lib/modules/Stack.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 #define error(X) throw( ({ (X), backtrace()[0..sizeof(backtrace())-2] }) )
 
 class stack {
diff --git a/lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod b/lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod
index 92a64856b611009bb0303b4b35b64447d09c75a5..f6079f2b7f839b25ff585b6f1422b4eaa03ffe29 100644
--- a/lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod
+++ b/lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod
@@ -2,6 +2,8 @@
  *
  */
 
+#pike __VERSION__
+
 #define error(msg) throw( ({ msg, backtrace() }) )
 
 /* Decodes a DER object. DATA is an instance of ADT.struct, and types
diff --git a/lib/modules/Standards.pmod/ASN1.pmod/Encode.pmod b/lib/modules/Standards.pmod/ASN1.pmod/Encode.pmod
index 4e5cab40b4162952202ba67676b9b8ab98723601..234e2aeb834c687464e5722922118461aaf0b7d2 100644
--- a/lib/modules/Standards.pmod/ASN1.pmod/Encode.pmod
+++ b/lib/modules/Standards.pmod/ASN1.pmod/Encode.pmod
@@ -5,6 +5,8 @@
 
 /* FIXME: This file is obsolete. All code should use ASN1.Types instead. */
 
+#pike __VERSION__
+
 #if 0
 #define WERROR werror
 #else
@@ -267,4 +269,4 @@ class asn1_utc
   constant tag = 23;
 }
 
-#endif
\ No newline at end of file
+#endif
diff --git a/lib/modules/Standards.pmod/ASN1.pmod/Types.pmod b/lib/modules/Standards.pmod/ASN1.pmod/Types.pmod
index b7f059d177db69df6294f944cbbc7a8bd8daa746..b8a030e32812718259df5b6b5f09e88d4b9c33f2 100644
--- a/lib/modules/Standards.pmod/ASN1.pmod/Types.pmod
+++ b/lib/modules/Standards.pmod/ASN1.pmod/Types.pmod
@@ -1,9 +1,11 @@
 /*
- * $Id: Types.pmod,v 1.14 2000/05/25 20:20:31 sigge Exp $
+ * $Id: Types.pmod,v 1.15 2000/09/26 19:00:14 hubbe Exp $
  *
  * Encodes various asn.1 objects according to the Distinguished
  * Encoding Rules (DER) */
 
+#pike __VERSION__
+
 #if constant(Gmp.mpz)
 
 #if 0
diff --git a/lib/modules/Standards.pmod/ISO639_2.pmod b/lib/modules/Standards.pmod/ISO639_2.pmod
index 1ee6f44ad75aa77b224b748de61b62c3c0dbb096..e4f41c4856f5df1a732b042b7d505a87b2338bb9 100644
--- a/lib/modules/Standards.pmod/ISO639_2.pmod
+++ b/lib/modules/Standards.pmod/ISO639_2.pmod
@@ -3,6 +3,8 @@
 
 // Updated 2000-06-14 from http://lcweb.loc.gov/standards/iso639-2/
 
+#pike __VERSION__
+
 // ISO 639-2/T
 static mapping(string:string) languages=([
   "aar":"Afar",
diff --git a/lib/modules/Standards.pmod/PKCS.pmod/CSR.pmod b/lib/modules/Standards.pmod/PKCS.pmod/CSR.pmod
index 4ece669a288cecacb13bfca888f2a0062237b301..f558ce0ecfdb3865a1123f3bf05077a3133f98a2 100644
--- a/lib/modules/Standards.pmod/PKCS.pmod/CSR.pmod
+++ b/lib/modules/Standards.pmod/PKCS.pmod/CSR.pmod
@@ -3,6 +3,8 @@
  * Handling of Certifikate Signing Requests (PKCS-10)
  */
 
+#pike __VERSION__
+
 #if __VERSION__ >= 0.6
 import ".";
 #endif /* __VERSION__ >= 0.6 */
@@ -40,4 +42,4 @@ object build_csr_dsa(object dsa, object name)
 }
 #endif
 
-#endif
\ No newline at end of file
+#endif
diff --git a/lib/modules/Standards.pmod/PKCS.pmod/Certificate.pmod b/lib/modules/Standards.pmod/PKCS.pmod/Certificate.pmod
index 4c3f4f4f3a3c8011499ec465a75efde804300d7c..5dc781ac71bf1df17d1e1f3245c5a2df34e22f69 100644
--- a/lib/modules/Standards.pmod/PKCS.pmod/Certificate.pmod
+++ b/lib/modules/Standards.pmod/PKCS.pmod/Certificate.pmod
@@ -6,6 +6,8 @@
 
 /* ASN.1 structures:
 
+#pike __VERSION__
+
 CertificationRequestInfo ::= SEQUENCE {
   version Version,
   subject Name,
@@ -206,4 +208,4 @@ class Attributes
     }
 }
       
-#endif
\ No newline at end of file
+#endif
diff --git a/lib/modules/Standards.pmod/PKCS.pmod/DSA.pmod b/lib/modules/Standards.pmod/PKCS.pmod/DSA.pmod
index 5426ab594e2bc9cf57e946cde19687ff7387b627..8f4176e3264b9a1a8c4cb943529e10deda3fb167 100644
--- a/lib/modules/Standards.pmod/PKCS.pmod/DSA.pmod
+++ b/lib/modules/Standards.pmod/PKCS.pmod/DSA.pmod
@@ -7,6 +7,9 @@
 /* NOTE: Unlike the functions in RSA.pmod, this function returns
  * an object rather than a string. */
 
+#pike __VERSION__
+
+
 #if constant(Gmp.mpz)
 
 constant asn1_sequence = Standards.ASN1.Types.asn1_sequence;
diff --git a/lib/modules/Standards.pmod/PKCS.pmod/Identifiers.pmod b/lib/modules/Standards.pmod/PKCS.pmod/Identifiers.pmod
index 7e6aab8bef1439d70f9f0ed5057e7e8300d4b5c6..16ef3b14bc1331781c8219c6657482b1f964c960 100644
--- a/lib/modules/Standards.pmod/PKCS.pmod/Identifiers.pmod
+++ b/lib/modules/Standards.pmod/PKCS.pmod/Identifiers.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 /* identifiers.pmod
  *
  * Object identifiers */
diff --git a/lib/modules/Standards.pmod/PKCS.pmod/PFX.pmod b/lib/modules/Standards.pmod/PKCS.pmod/PFX.pmod
index cfdd47e2a42aaaad15c8dd4e5f749226b1769228..d638ae828e07fe403dd21a60aa9cb13cdbbc9c76 100644
--- a/lib/modules/Standards.pmod/PKCS.pmod/PFX.pmod
+++ b/lib/modules/Standards.pmod/PKCS.pmod/PFX.pmod
@@ -9,6 +9,8 @@
  *
  */
 
+#pike __VERSION__
+
 import Standards.ASN1;
 
 object pkcs_7_id = .Identifiers.pkcs_id->append(7);
diff --git a/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod b/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod
index 6a9292843ee0535819e14d039819bd00bfd3e8d4..b4f273bb18bbe9b2132988125f00a07abcbee5fb 100644
--- a/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod
+++ b/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod
@@ -2,6 +2,8 @@
  *
  * rsa operations and types as described in PKCS-1 */
 
+#pike __VERSION__
+
 #if 0
 #define WERROR werror
 #else
diff --git a/lib/modules/Standards.pmod/PKCS.pmod/Signature.pmod b/lib/modules/Standards.pmod/PKCS.pmod/Signature.pmod
index 7da5ce401f149e76a2b04bf1cf1c990d166c13b3..ead6601ec6be07c073027188cdd30be8cfc06032 100644
--- a/lib/modules/Standards.pmod/PKCS.pmod/Signature.pmod
+++ b/lib/modules/Standards.pmod/PKCS.pmod/Signature.pmod
@@ -2,6 +2,8 @@
  *
  */
 
+#pike __VERSION__
+
 /* Construct a PKCS-1 digestinfo */
 string build_digestinfo(string msg, object hash)
 {
diff --git a/lib/modules/Stdio.pmod/Readline.pike b/lib/modules/Stdio.pmod/Readline.pike
index 95a654cde7ca5601ea47025956aa6e0e2a30ebb9..a5433dabc6d8d0d7b4e644d7cea4e0532ff82b76 100644
--- a/lib/modules/Stdio.pmod/Readline.pike
+++ b/lib/modules/Stdio.pmod/Readline.pike
@@ -1,5 +1,5 @@
-// $Id: Readline.pike,v 1.35 2000/09/04 09:48:56 noring Exp $
-
+// $Id: Readline.pike,v 1.36 2000/09/26 19:00:19 hubbe Exp $
+#pike __VERSION__
 class OutputController
 {
   static private object outfd, term;
diff --git a/lib/modules/Stdio.pmod/Terminfo.pmod b/lib/modules/Stdio.pmod/Terminfo.pmod
index b001625f07e17346160fdbd618f315edd3654fdd..87c1cdafaf2c7f8e8041126b153eddda48f070a2 100644
--- a/lib/modules/Stdio.pmod/Terminfo.pmod
+++ b/lib/modules/Stdio.pmod/Terminfo.pmod
@@ -1,4 +1,5 @@
-// $Id: Terminfo.pmod,v 1.9 2000/08/27 18:29:27 mirar Exp $
+// $Id: Terminfo.pmod,v 1.10 2000/09/26 19:00:20 hubbe Exp $
+#pike __VERSION__
 
 
 #if constant(thread_create)
diff --git a/lib/modules/Stdio.pmod/module.pmod b/lib/modules/Stdio.pmod/module.pmod
index 06af19dd630177191a72c2ab1eea0a57b81cb50c..617af703b2d68e791808f296ba83434dbfd1a1e2 100644
--- a/lib/modules/Stdio.pmod/module.pmod
+++ b/lib/modules/Stdio.pmod/module.pmod
@@ -1,4 +1,6 @@
-// $Id: module.pmod,v 1.87 2000/09/10 17:21:21 grubba Exp $
+// $Id: module.pmod,v 1.88 2000/09/26 19:00:20 hubbe Exp $
+#pike __VERSION__
+
 
 import String;
 
diff --git a/lib/modules/String.pmod b/lib/modules/String.pmod
index 808f5edd9762943be99deaa0f82e5d6f6ccd66e9..7eb6cda21f74a423b502d7886e1f5ae641df1cd4 100644
--- a/lib/modules/String.pmod
+++ b/lib/modules/String.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 #define BEGIN 32
 
 constant count=__builtin.string_count;
diff --git a/lib/modules/Thread.pmod b/lib/modules/Thread.pmod
index da049e8ea2d3e2155ac8474a3008c85d935749da..496549f7ded36a216ecdb467c6357df9dc3a98d2 100644
--- a/lib/modules/Thread.pmod
+++ b/lib/modules/Thread.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 #if constant(thread_create)
 
 constant Thread=__builtin.thread_id;
diff --git a/lib/modules/Tools.pmod/Hilfe.pmod b/lib/modules/Tools.pmod/Hilfe.pmod
index d8c34ff05c9e0ceddf58e218e69e1124c7c0285e..e0d6c700537c2bdf7b4fb030e3da065d944f8867 100644
--- a/lib/modules/Tools.pmod/Hilfe.pmod
+++ b/lib/modules/Tools.pmod/Hilfe.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 class Evaluator
 {
 /* Incremental Pike evaluator */
diff --git a/lib/modules/Tools.pmod/Install.pmod b/lib/modules/Tools.pmod/Install.pmod
index 899c22d890b89202378b28037ba2c002ce0ce5ef..4f944c542964c6791dd94f103b36a8583d592f54 100644
--- a/lib/modules/Tools.pmod/Install.pmod
+++ b/lib/modules/Tools.pmod/Install.pmod
@@ -1,3 +1,4 @@
+#pike __VERSION__
 //
 // Common routines which are useful for various install scripts based on Pike.
 //
diff --git a/lib/modules/Tools.pmod/PEM.pmod b/lib/modules/Tools.pmod/PEM.pmod
index 22e69a56debd47f5d910b98f65a72722c99a501d..5f6b08cd8835f11dd5593484544dad09020cb50a 100644
--- a/lib/modules/Tools.pmod/PEM.pmod
+++ b/lib/modules/Tools.pmod/PEM.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 /* PEM.pmod
  *
  * Support for parsing PEM-style messages.
diff --git a/lib/modules/Tools.pmod/X509.pmod b/lib/modules/Tools.pmod/X509.pmod
index 5743a7c983bf2276a6164165db438e717ce14c69..da01b0dffadcdcbc4d27217bc79797604b5efc27 100644
--- a/lib/modules/Tools.pmod/X509.pmod
+++ b/lib/modules/Tools.pmod/X509.pmod
@@ -1,5 +1,7 @@
+#pike __VERSION__
+
 /* 
- * $Id: X509.pmod,v 1.10 2000/08/01 19:51:47 sigge Exp $
+ * $Id: X509.pmod,v 1.11 2000/09/26 19:00:23 hubbe Exp $
  *
  * Some random functions for creating RFC-2459 style X.509 certificates.
  *
diff --git a/lib/modules/Tools.pmod/_PEM.pmod b/lib/modules/Tools.pmod/_PEM.pmod
index b17c979677b9131ed447a6d55f724c42fc273e66..667bcb65c6fc6289943426485415318a5167ac9c 100644
--- a/lib/modules/Tools.pmod/_PEM.pmod
+++ b/lib/modules/Tools.pmod/_PEM.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 /* _PEM.pmod
  *
  * Kludge.
diff --git a/lib/modules/Tools.pmod/sed.pmod b/lib/modules/Tools.pmod/sed.pmod
index 14e63277cbdc295709ef5b2b31c453c054030c19..cb125d3fc309d8611afdbfd4120b753b9da133a8 100644
--- a/lib/modules/Tools.pmod/sed.pmod
+++ b/lib/modules/Tools.pmod/sed.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 // edit commands supported:
 // <firstline>,<lastline><edit command>
 //    ^^ numeral (17) ^^
diff --git a/lib/modules/Yabu.pmod/module.pmod b/lib/modules/Yabu.pmod/module.pmod
index b93c85d715b9de9e659b580564e39e485c13216c..f899124e5a4ed16ed5c874f0222f62c83b78cc29 100644
--- a/lib/modules/Yabu.pmod/module.pmod
+++ b/lib/modules/Yabu.pmod/module.pmod
@@ -4,7 +4,9 @@
  * associated with a unique key.
  */
 
-constant cvs_id = "$Id: module.pmod,v 1.22 2000/07/04 14:48:41 mast Exp $";
+#pike __VERSION__
+
+constant cvs_id = "$Id: module.pmod,v 1.23 2000/09/26 19:00:25 hubbe Exp $";
 
 #define ERR(msg) throw(({ "(Yabu) "+msg+"\n", backtrace() }))
 #define IO_ERR(msg) throw(({ sprintf("(Yabu) %s, %s (%d)\n",msg,strerror(errno()),errno()),backtrace() }))
diff --git a/lib/modules/Yabu.pmod/test.pike b/lib/modules/Yabu.pmod/test.pike
index 29ffde9f5dbb1974cfbb704219aab41b7de9d954..ae2643de207f3212dece036a6ab3586c54f3e23e 100644
--- a/lib/modules/Yabu.pmod/test.pike
+++ b/lib/modules/Yabu.pmod/test.pike
@@ -1,6 +1,8 @@
 #!/usr/local/bin/pike
 // Yabu test program
 
+#pike __VERSION__
+
 #define ERR(msg) throw(({ msg+"\n", backtrace() }));
 
 void check_db(object db, mapping m)
diff --git a/lib/modules/_Image.pmod/module.pmod b/lib/modules/_Image.pmod/module.pmod
index 0134bcd47cf8b9b1be2d8716798f079c2f53e9c4..1c835f31feb7b2c1b066713a2e2895773ee05a65 100644
--- a/lib/modules/_Image.pmod/module.pmod
+++ b/lib/modules/_Image.pmod/module.pmod
@@ -1,5 +1,7 @@
+#pike __VERSION__
+
 //! module Image
-//! $Id: module.pmod,v 1.9 2000/09/12 16:41:05 jonasw Exp $
+//! $Id: module.pmod,v 1.10 2000/09/26 19:00:27 hubbe Exp $
 
 //! method object(Image.Image) load()
 //! method object(Image.Image) load(object file)
diff --git a/lib/modules/_Image_PS.pmod b/lib/modules/_Image_PS.pmod
index 35dd9d0d6d2134b90811cbf0f2d1a5a9fd4e1715..5d153540f4bc743600216d391a68ddd94a55c57c 100644
--- a/lib/modules/_Image_PS.pmod
+++ b/lib/modules/_Image_PS.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 string find_in_path( string file )
 {
   string path=getenv("PATH");
diff --git a/lib/modules/_Image_PSD.pmod b/lib/modules/_Image_PSD.pmod
index df5486f502c54c3d1374655cda4cd6c9652bb810..86a39e8edf01e094d8f53a8976f52f668918b0aa 100644
--- a/lib/modules/_Image_PSD.pmod
+++ b/lib/modules/_Image_PSD.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 inherit Image._PSD;
 
 class Layer
diff --git a/lib/modules/_Image_XCF.pmod b/lib/modules/_Image_XCF.pmod
index 9b786e64798de8bf3aa9a3b1664e87217df781a9..626026838768ee9771c3e09a82c3498b8ede17e7 100644
--- a/lib/modules/_Image_XCF.pmod
+++ b/lib/modules/_Image_XCF.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 inherit Image._XCF;
 
 #define SIGNED(X) if(X>=(1<<31)) X=-((1<<32)-X)
diff --git a/lib/modules/_Image_XPM.pmod b/lib/modules/_Image_XPM.pmod
index 15ed3f6d5e40d6a2cb464e36de475378d459e622..29778dbb138d4e475e20869f7b385a6b40234699 100644
--- a/lib/modules/_Image_XPM.pmod
+++ b/lib/modules/_Image_XPM.pmod
@@ -1,3 +1,5 @@
+#pike __VERSION__
+
 inherit Image._XPM;
 #if 0
 # define TE( X )  werror("XPM profile: %-20s ... ", (X));
diff --git a/lib/modules/__builtin.pmod b/lib/modules/__builtin.pmod
index 6d1f276f956d27061cbe01d508ab9841d886e0a9..59d25c29a7ac5b73254ee01265600b0aab69fae4 100644
--- a/lib/modules/__builtin.pmod
+++ b/lib/modules/__builtin.pmod
@@ -1 +1,3 @@
+#pike __VERSION__
+
 inherit _static_modules.Builtin;
diff --git a/lib/modules/error.pmod b/lib/modules/error.pmod
index dfc6eb21027d68e61e7aeca3feed38e996291ab8..f76eb55ea8c4f62a8097f6c640fbd6226f21aec8 100644
--- a/lib/modules/error.pmod
+++ b/lib/modules/error.pmod
@@ -1,5 +1,7 @@
+#pike __VERSION__
+
 // Moahahahah!
-// $Id: error.pmod,v 1.2 1999/08/10 00:27:43 mast Exp $
+// $Id: error.pmod,v 1.3 2000/09/26 18:59:08 hubbe Exp $
 void `()(string f, mixed ... args)
 {
   array(array) b = backtrace();