diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/daemon/common/commonNetwork.ml ./src/daemon/common/commonNetwork.ml
--- ./src/daemon/common/commonNetwork.ml	2005-09-19 12:09:05.000000000 +0200
+++ ./src/daemon/common/commonNetwork.ml	2005-10-31 21:53:06.000000000 +0100
@@ -67,6 +67,8 @@
         lprintf_nl "op_network_load_complex_options";
       if c.op_network_enable == cc.op_network_enable then 
         lprintf_nl "op_network_enable";
+      if c.op_network_update_options == cc.op_network_update_options then 
+        lprintf_nl "op_network_update_options";
       if c.op_network_add_server == cc.op_network_add_server then 
         lprintf_nl "op_network_add_server";
       if c.op_network_server_of_option == cc.op_network_server_of_option then 
@@ -103,13 +105,14 @@
         lprintf_nl "op_network_clean_exit";
   ) !networks_ops;
   lprint_newline ()
-  
+
 let network_connected_servers n = n.op_network_connected_servers ()
 let network_is_enabled n = n.op_network_is_enabled ()
 let network_save_complex_options n = n.op_network_save_complex_options ()
 let network_save_sources n = n.op_network_save_sources ()
 let network_load_complex_options n = n.op_network_load_complex_options ()
-let network_enable n =  n.op_network_enable ()
+let network_enable n = n.op_network_enable ()
+let network_update_options n = n.op_network_update_options ()
 let network_disable n = n.op_network_disable () 
 let network_share n s = n.op_network_share s
 let network_recover_temp n = n.op_network_recover_temp ()
@@ -119,7 +122,6 @@
 let network_client_of_option n f = n.op_network_client_of_option f
 let network_clean_exit n = try n.op_network_clean_exit () with _ -> true
 
-  
 let networks_iter f =
   List.iter (fun r ->
       try
@@ -246,6 +248,7 @@
       op_network_save_sources =  (fun _ -> ni_ok name "save_sources");
       op_network_load_complex_options =  (fun _ -> ni_ok name "load_complex_options");
       op_network_enable =  (fun _ -> ni_ok name "enable");
+      op_network_update_options = (fun _ -> ni_ok name "update_options");
       op_network_disable =  (fun _ -> ni_ok name "disable");
       op_network_server_of_option =  (fun _ -> fni name "op_network_server_of_option");
       op_network_file_of_option =  (fun _ _ -> fni name "op_network_file_of_option");
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/daemon/common/commonNetwork.mli ./src/daemon/common/commonNetwork.mli
--- ./src/daemon/common/commonNetwork.mli	2005-09-06 13:29:10.000000000 +0200
+++ ./src/daemon/common/commonNetwork.mli	2005-10-31 21:51:10.000000000 +0100
@@ -18,6 +18,7 @@
 val network_save_sources : CommonTypes.network -> unit
 val network_load_complex_options : CommonTypes.network -> unit
 val network_enable : CommonTypes.network -> unit
+val network_update_options : CommonTypes.network -> unit
 val network_disable : CommonTypes.network -> unit
 val network_recover_temp : CommonTypes.network -> unit
 val network_share : CommonTypes.network -> string -> string -> int64 -> unit
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/daemon/common/commonTypes.ml ./src/daemon/common/commonTypes.ml
--- ./src/daemon/common/commonTypes.ml	2005-09-06 13:29:10.000000000 +0200
+++ ./src/daemon/common/commonTypes.ml	2005-10-31 21:52:33.000000000 +0100
@@ -461,6 +461,7 @@
     mutable op_network_save_sources : (unit -> unit);
     mutable op_network_load_complex_options : (unit -> unit);
     mutable op_network_enable : (unit -> unit);
+    mutable op_network_update_options : (unit -> unit);
     mutable op_network_disable : (unit -> unit);
     
     mutable op_network_server_of_option : 
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/daemon/common/commonUploads.ml ./src/daemon/common/commonUploads.ml
--- ./src/daemon/common/commonUploads.ml	2005-10-31 19:01:46.000000000 +0100
+++ ./src/daemon/common/commonUploads.ml	2005-10-31 22:44:26.000000000 +0100
@@ -217,6 +217,7 @@
 let _ =
   network.op_network_connected <- (fun _ -> false);
   network.op_network_is_enabled <- (fun _ -> raise IgnoreNetwork);
+  network.op_network_update_options <- (fun _ -> raise IgnoreNetwork);
   network.op_network_info <- (fun _ -> raise Not_found);
   network.op_network_info <- (fun n ->
       {
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/daemon/driver/driverMain.ml ./src/daemon/driver/driverMain.ml
--- ./src/daemon/driver/driverMain.ml	2005-10-28 10:21:49.000000000 +0200
+++ ./src/daemon/driver/driverMain.ml	2005-10-31 22:46:03.000000000 +0100
@@ -446,6 +446,7 @@
 	  end);
   if not !found then lprintf (_b "none");
   lprint_newline ();
+  networks_iter_all (fun n -> network_update_options n);
   CommonOptions.start_running_plugins := true;
   CommonInteractive.force_download_quotas ();
 
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/bittorrent/bTComplexOptions.ml ./src/networks/bittorrent/bTComplexOptions.ml
--- ./src/networks/bittorrent/bTComplexOptions.ml	2005-09-03 01:48:54.000000000 +0200
+++ ./src/networks/bittorrent/bTComplexOptions.ml	2005-10-31 22:53:24.000000000 +0100
@@ -279,7 +279,6 @@
 let config_files_loaded = ref false
 
 let load _ =
-  lprintf_nl () "Loading stats";
   (try
       Options.load bt_stats_ini;
     with Sys_error _ -> ());
@@ -332,4 +331,5 @@
   (* Shut up message "Network.save/load_complex_options not implemented by BitTorrent" *)
   network.op_network_load_complex_options <- load;
   network.op_network_save_complex_options <- save;
+  network.op_network_update_options <- (fun _ -> ());
   network.op_network_save_sources <- (fun _ -> ())
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/bittorrent/bTOptions.ml ./src/networks/bittorrent/bTOptions.ml
--- ./src/networks/bittorrent/bTOptions.ml	2005-10-23 18:00:14.000000000 +0200
+++ ./src/networks/bittorrent/bTOptions.ml	2005-10-31 22:01:42.000000000 +0100
@@ -124,6 +124,10 @@
     "User agent string (default = \"default\")"
     string_option "default"
 
+let options_version = define_option bittorrent_section ["options_version"]
+    "(internal option)"
+    int_option 0
+
 let old_files =
   define_option bittorrent_section ["old_files"]
     "" (list_option (tuple2_option (string_option, int64_option))) []
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/direct_connect/dcInteractive.ml ./src/networks/direct_connect/dcInteractive.ml
--- ./src/networks/direct_connect/dcInteractive.ml	2005-07-17 18:11:12.000000000 +0200
+++ ./src/networks/direct_connect/dcInteractive.ml	2005-10-31 22:04:30.000000000 +0100
@@ -388,6 +388,7 @@
 let _ =
   network.op_network_save_complex_options <- (fun _ -> ());
   network.op_network_save_sources <- (fun _ -> ());
+  network.op_network_update_options <- (fun _ -> ());
   network.op_network_add_server <- (fun ip port ->
       as_server (new_server ip port).server_server
   )
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/direct_connect/dcOptions.ml ./src/networks/direct_connect/dcOptions.ml
--- ./src/networks/direct_connect/dcOptions.ml	2005-05-17 15:18:05.000000000 +0200
+++ ./src/networks/direct_connect/dcOptions.ml	2005-10-31 22:01:35.000000000 +0100
@@ -86,7 +86,10 @@
 let client_keyinfo = define_option directconnect_section
     ["client_keyinfo"] "The key info sent in the handshake message"
     string_option "Pk=mldc"
-  
+
+let options_version = define_option directconnect_section ["options_version"]
+    "(internal option)"
+    int_option 0
 
 let shortname o =
   Printf.sprintf "DC-%s" (shortname o)
@@ -109,7 +112,3 @@
     ("Client Speed", shortname client_speed, "T");
     ("Shared Offset", shortname shared_offset, "T");
   ]
-
-let client_options_version = define_option directconnect_section
-    ["client_options_version"] "To automatically update your options"
-    int_option 0
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/donkey/donkeyMain.ml ./src/networks/donkey/donkeyMain.ml
--- ./src/networks/donkey/donkeyMain.ml	2005-10-27 11:42:46.000000000 +0200
+++ ./src/networks/donkey/donkeyMain.ml	2005-10-31 22:46:41.000000000 +0100
@@ -342,6 +342,22 @@
       lprintf_nl () "Error: Exception %s during startup"
         (Printexc2.to_string e)
 
+
+let rec update_options () =
+  let update v =
+      lprintf_nl () "Updating options to version %i" v;
+      options_version =:= v;
+      update_options ()
+  in
+
+  match !!options_version with
+    0 ->
+      if !!max_sources_per_file = 20000 then
+        max_sources_per_file =:= 5000;
+      update 1
+  | _ -> ()
+
+
 let _ =
 
 (* TODO INDEX  DonkeyIndexer.init (); *)
@@ -354,6 +370,7 @@
 );
   *)
   network.op_network_enable <- enable;
+  network.op_network_update_options <- update_options;
 (*  network.network_config_file <- []; *)
   network.op_network_info <- (fun n ->
       { 
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/donkey/donkeyOptions.ml ./src/networks/donkey/donkeyOptions.ml
--- ./src/networks/donkey/donkeyOptions.ml	2005-10-06 16:03:05.000000000 +0200
+++ ./src/networks/donkey/donkeyOptions.ml	2005-10-31 22:52:03.000000000 +0100
@@ -148,7 +148,7 @@
 
 let max_sources_per_file = define_option donkey_section ["max_sources_per_file"]
     "Maximal number of sources for each file"
-    int_option 20000
+    int_option 5000
 
 open Md4
 
@@ -312,6 +312,10 @@
   define_expert_option donkey_section ["become_master_delay"]
     "(only for development tests)" int_option 120
 
+let options_version = define_expert_option donkey_section ["options_version"]
+    "(internal option)"
+    int_option 0
+
 let gui_donkey_options_panel =
   [
 (*    "Maximal Source Age", shortname max_sources_age, "T"; *)
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/donkey/donkeyOvernet.ml ./src/networks/donkey/donkeyOvernet.ml
--- ./src/networks/donkey/donkeyOvernet.ml	2005-10-31 19:07:11.000000000 +0100
+++ ./src/networks/donkey/donkeyOvernet.ml	2005-10-31 21:39:26.000000000 +0100
@@ -408,11 +408,6 @@
     "Search Max Hits", shortname overnet_max_search_hits, "T";
   ]
 
-let overnet_options_version =
-  define_option overnet_section [Proto.options_section_name; "options_version"]
-    "(internal)"
-    int_option 0
-
 
 (********************************************************************
 
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/fileTP/fileTPComplexOptions.ml ./src/networks/fileTP/fileTPComplexOptions.ml
--- ./src/networks/fileTP/fileTPComplexOptions.ml	2005-07-27 01:16:48.000000000 +0200
+++ ./src/networks/fileTP/fileTPComplexOptions.ml	2005-10-31 22:04:16.000000000 +0100
@@ -160,4 +160,5 @@
   (* Shut up message "Network.save/load_complex_options not implemented by FileTP" *)
   network.op_network_load_complex_options <- (fun _ -> ());
   network.op_network_save_complex_options <- (fun _ -> ());
+  network.op_network_update_options <- (fun _ -> ());
   network.op_network_save_sources <- (fun _ -> ())
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/fileTP/fileTPOptions.ml ./src/networks/fileTP/fileTPOptions.ml
--- ./src/networks/fileTP/fileTPOptions.ml	2005-07-27 01:16:48.000000000 +0200
+++ ./src/networks/fileTP/fileTPOptions.ml	2005-10-31 22:01:19.000000000 +0100
@@ -56,6 +56,10 @@
   "The argument to !!get_range to get a range"
     string_option "range"
 
+let options_version = define_option fileTP_section ["options_version"]
+    "(internal option)"
+    int_option 0
+
   (*
 let verbose_clients =
   define_option fileTP_section ["verbose_clients"]
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/gnutella/gnutellaComplexOptions.ml ./src/networks/gnutella/gnutellaComplexOptions.ml
--- ./src/networks/gnutella/gnutellaComplexOptions.ml	2005-09-03 01:48:54.000000000 +0200
+++ ./src/networks/gnutella/gnutellaComplexOptions.ml	2005-10-31 22:04:08.000000000 +0100
@@ -230,7 +230,7 @@
   network.op_network_load_complex_options <- (fun _ -> ());
   network.op_network_save_complex_options <- (fun _ -> ());
   network.op_network_save_sources <- (fun _ -> ());
-
+  network.op_network_update_options <- (fun _ -> ());
   set_after_load_hook gnutella_ini (fun _ ->
       
       List.iter (fun (ip,port) -> 
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/gnutella/gnutellaOptions.ml ./src/networks/gnutella/gnutellaOptions.ml
--- ./src/networks/gnutella/gnutellaOptions.ml	2005-09-03 01:48:54.000000000 +0200
+++ ./src/networks/gnutella/gnutellaOptions.ml	2005-10-31 22:01:07.000000000 +0100
@@ -157,6 +157,10 @@
     ["incoming_data_log"]
     "(only for development tests)"
     string_option ""
+
+let options_version = define_option gnutella_section ["options_version"]
+    "(internal option)"
+    int_option 0
   
 let gui_gnutella_options_panel = 
   (*
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/openFT/openFTOptions.ml ./src/networks/openFT/openFTOptions.ml
--- ./src/networks/openFT/openFTOptions.ml	2005-05-17 15:18:05.000000000 +0200
+++ ./src/networks/openFT/openFTOptions.ml	2005-10-31 22:00:41.000000000 +0100
@@ -42,6 +42,9 @@
   "Maximal number of peers remembered"
   int_option 20
 
+let options_version = define_option openft_ini ["options_version"]
+    "(internal option)"
+    int_option 0
     
 let server_connection_timeout = 
   define_option openft_ini ["server_connection_timeout"] 
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/opennap/opennapOptions.ml ./src/networks/opennap/opennapOptions.ml
--- ./src/networks/opennap/opennapOptions.ml	2005-05-17 15:18:05.000000000 +0200
+++ ./src/networks/opennap/opennapOptions.ml	2005-10-31 22:00:24.000000000 +0100
@@ -62,8 +62,10 @@
   "The maximal number of files to share on a server"
     int_option 400
   
-      
-  
+let options_version = define_expert_option opennap_section ["options_version"]
+    "(internal option)"
+    int_option 0
+
 let shortname o =
   Printf.sprintf "OpenNap-%s" (shortname o)
     
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/opennap/opennapServers.ml ./src/networks/opennap/opennapServers.ml
--- ./src/networks/opennap/opennapServers.ml	2005-07-17 18:11:13.000000000 +0200
+++ ./src/networks/opennap/opennapServers.ml	2005-10-31 22:03:48.000000000 +0100
@@ -519,6 +519,7 @@
   
   network.op_network_connected <- (fun _ -> !connected_servers != []);
   network.op_network_save_complex_options <- (fun _ -> ());
+  network.op_network_update_options <- (fun _ -> ());
   network.op_network_save_sources <- (fun _ -> ())
 
   (*
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/soulseek/slskMain.ml ./src/networks/soulseek/slskMain.ml
--- ./src/networks/soulseek/slskMain.ml	2005-07-17 18:11:13.000000000 +0200
+++ ./src/networks/soulseek/slskMain.ml	2005-10-31 22:03:39.000000000 +0100
@@ -87,6 +87,7 @@
         if !!enable_soulseek then network_enable network
       else network_disable network);
   network.op_network_save_complex_options <- SlskComplexOptions.save_config;
+  network.op_network_update_options <- (fun _ -> ());
   network.op_network_save_sources <- (fun _ -> ());
 (*
   network.op_network_load_simple_options <- (fun _ -> 
diff -a -x CVS -x Root -x Repository -x Tag -x Entries -x Entries.Log -x .svn -x '*.rej' -x '*.orig' -x .cvsignore -N -r -u ./src/networks/soulseek/slskOptions.ml ./src/networks/soulseek/slskOptions.ml
--- ./src/networks/soulseek/slskOptions.ml	2005-05-17 15:18:05.000000000 +0200
+++ ./src/networks/soulseek/slskOptions.ml	2005-10-31 22:02:00.000000000 +0100
@@ -72,9 +72,11 @@
 let next_token = 
   define_option soulseek_section ["next_token"]
     "the last token used for a query is saved here" int_option 1
-  
-        
-  
+
+let options_version = define_option soulseek_section ["options_version"]
+    "(internal option)"
+    int_option 0
+
 let shortname o =
   Printf.sprintf "SLSK-%s" (shortname o)
     
