--- a/gui/gui.ml
+++ b/gui/gui.ml
@@ -14,13 +14,17 @@
     waiting_pids : mutable list int }
 ;
 
-value bin_dir =
-  let path = Filename.dirname (Sys.argv.(0)) in
-  if Filename.is_relative path then
-    Filename.concat (Sys.getcwd ()) path
-  else path
+value bin_dir = "/usr/bin";
+value share_dir = "/usr/share/geneweb";
+
+value home_dir =
+  try Sys.getenv "HOME" with
+  [ Not_found ->
+    Sys.getcwd ()]
 ;
 
+value assistant_default_bases_dir = home_dir;
+
 value trace = ref False;
 
 value default_lang =
@@ -32,12 +36,9 @@
 
 value lang = ref default_lang;
 value lexicon_mtime = ref 0.0;
-value lexicon_file = Filename.concat bin_dir "gui_lex.txt";
-
-value config_gui_file = Filename.concat bin_dir "config.txt";
-value config_gwd_file = Filename.concat bin_dir "gwd.arg";
-value config_only_file = Filename.concat bin_dir "only.txt";
 
+value lexicon_file = Filename.concat share_dir "lang/gui_lex.txt";
+value config_gui_file = Filename.concat home_dir ".geneweb-gui-config.txt";
 
 (**/**) (* Gestion du dictionnaire des langues pour GUI. *)
 
@@ -217,8 +218,7 @@
 ;
 
 value write_config_file conf = do {
-  let fname = Filename.concat bin_dir "config.txt" in
-  match try Some (open_out fname) with [ Sys_error _ -> None] with
+  match try Some (open_out config_gui_file) with [ Sys_error _ -> None] with
   [ Some oc ->
       do {
         List.iter (fun (k, v) -> fprintf oc "%s=%s\n" k v) conf.gui_arg;
@@ -256,7 +256,7 @@
     [ "Win32" | "Cygwin" ->
         ["C:\\Program Files\\Mozilla Firefox\\firefox.exe";
          "C:\\Program Files\\Internet Explorer\\iexplore.exe"]
-    | _ -> ["/usr/bin/firefox"; "/usr/bin/mozilla"] ]
+    | _ -> ["/usr/bin/x-www-browser"] ]
   in
   match List.filter Sys.file_exists default_browsers with
   [ [] -> None
@@ -285,19 +285,24 @@
       clean_waiting_pids conf;
       eprintf "Closing..."; flush stderr;
       (* Making a (empty) file STOP_SERVER to make the server stop. *)
-      let stop_server =
-        List.fold_left Filename.concat conf.bases_dir ["cnt"; "STOP_SERVER"]
-      in
-      let oc = open_out stop_server in
-      close_out oc;
-      (* Send a phony connection to unblock it. *)
-      let s = Unix.socket Unix.PF_INET Unix.SOCK_STREAM 0 in
-      try
-        Unix.connect s (Unix.ADDR_INET Unix.inet_addr_loopback conf.port)
-      with [ Unix.Unix_error _ _ _ -> () ];
-      try Unix.close s with
-      [ Unix.Unix_error _ _ _ -> () ];
-      ignore (Unix.waitpid [] server_pid);
+      let (pid, ps) = Unix.waitpid [Unix.WNOHANG] server_pid in
+      if pid=0 then
+        let stop_server =
+          List.fold_left Filename.concat conf.bases_dir ["cnt"; "STOP_SERVER"]
+        in
+        do {
+          let oc = open_out stop_server in
+          close_out oc;
+          (* Send a phony connection to unblock it. *)
+          let s = Unix.socket Unix.PF_INET Unix.SOCK_STREAM 0 in
+          try
+            Unix.connect s (Unix.ADDR_INET Unix.inet_addr_loopback conf.port)
+          with [ Unix.Unix_error _ _ _ -> () ];
+          try Unix.close s with
+            [ Unix.Unix_error _ _ _ -> () ];
+          ignore (Unix.waitpid [] server_pid);
+          try Sys.remove stop_server with [ Sys_error _ -> () ]
+      } else ();
       conf.server_running := None;
       eprintf "\n"; flush stderr;
     }
@@ -753,7 +758,7 @@
   in
   let icon name =
     let file =
-      List.fold_left Filename.concat bin_dir ["images"; name]
+      List.fold_left Filename.concat share_dir ["images"; name]
     in
     let info = GDraw.pixmap_from_xpm ~file:file () in
     (GMisc.pixmap info ())#coerce
@@ -1249,7 +1254,7 @@
   try Sys.remove stop_server with [ Sys_error _ -> () ];
   let prog = Filename.concat bin_dir "gwd" in
   let args =
-    ["-hd"; bin_dir; "-bd"; conf.bases_dir; "-p"; sprintf "%d" conf.port]
+    ["-hd"; share_dir; "-bd"; conf.bases_dir; "-lang"; lang.val; "-p"; sprintf "%d" conf.port]
   in
   let server_pid = exec prog args gwd_log gwd_log in
   let (pid, ps) = Unix.waitpid [Unix.WNOHANG] server_pid in
@@ -1286,7 +1291,13 @@
     let page_0 = GMisc.label
       ~text:(transl "This assistant will help you to setup GeneWeb") ()
     in
-    let bases_dir = ref "" in
+    let page_0b = GMisc.label
+      ~text:(transl "Unlike geneweb and gwsetup, geneweb-gui is designed to work with bases stored in your home folder." ^ "\n\n" ^
+             transl "It is not recommended to use the bases stored in /var/lib/geneweb with geneweb-gui." ^ "\n\n" ^
+             transl "It is also not recommended to use ports 2316 or 2317 that are already used by the geneweb and gwsetup daemons." )
+      ~line_wrap:True ()
+    in
+    let bases_dir = ref assistant_default_bases_dir in
     let page_1 = GPack.hbox ~spacing:5 () in
     let _label = GMisc.label
       ~text:(transl "select bases directory")
@@ -1308,7 +1319,7 @@
            let num = assistant#current_page in
            let page = assistant#nth_page num in
            assistant#set_page_complete page (bases_dir.val <> "") }));
-    let port = ref 2317 in
+    let port = ref 2315 in (*to avoid conflicts with port 2317*)
     let page_2 = GPack.hbox ~homogeneous:False ~spacing:5 () in
     let _label = GMisc.label
       ~text:(transl "enter port")
@@ -1363,7 +1374,8 @@
                assistant#set_page_complete page btn#active }))
     | None -> () ];
     let page_4 = GMisc.label
-      ~text:(transl "save preferences") ()
+      ~text:(transl "Your configuration file is:" ^ "\n" ^ config_gui_file)
+      ~line_wrap:True ()
     in
     ignore
       (assistant#append_page
@@ -1373,6 +1385,12 @@
          page_0#as_widget);
     ignore
       (assistant#append_page
+         ~title:(transl "About geneweb-gui")
+         ~page_type:`CONTENT
+         ~complete:True
+         page_0b#as_widget);
+    ignore
+      (assistant#append_page
          ~title:(transl "Setup bases directory")
          ~page_type:`CONTENT
          page_1#as_widget);
@@ -1389,7 +1407,7 @@
          page_3#as_widget);
     ignore
       (assistant#append_page
-         ~title:(transl "Finnish")
+         ~title:(transl "Finished")
          ~page_type: `CONFIRM
          ~complete:True
          page_4#as_widget);
--- a/gui/gw/gui_lex.txt
+++ b/gui/gw/gui_lex.txt
@@ -123,7 +123,7 @@
 
     select browser
 en: Select the browser you want to use
-fr: Selectionnez le navigateur que vous voulez utiliser
+fr: Selectionnez le navigateur à utiliser
 
     save preferences
 en: Save preference
@@ -145,8 +145,8 @@
 en: Setup browser
 fr: Configuration du navigateur
 
-    Finnish
-en: Finnish
+    Finished
+en: Finished
 fr: Terminer
 
     Home
@@ -200,3 +200,23 @@
     Update_nldb
 en: Update_nldb
 fr: Update_nldb
+
+    About geneweb-gui
+en: About geneweb-gui
+fr: À propos de geneweb-gui
+
+    Unlike geneweb and gwsetup, geneweb-gui is designed to work with bases stored in your home folder.
+en: Unlike geneweb and gwsetup, geneweb-gui is designed to work with bases stored in your home folder.
+fr: Contrairement à geneweb et gwsetup, geneweb-gui est conçu pour fonctionner avec des bases rangées dans votre dossier personnel.
+
+    It is not recommended to use the bases stored in /var/lib/geneweb with geneweb-gui.
+en: It is not recommended to use the bases stored in /var/lib/geneweb with geneweb-gui.
+fr: Il est déconseillé d'utiliser les bases contenues dans /var/lib/geneweb avec geneweb-gui.
+
+    It is also not recommended to use ports 2316 or 2317 that are already used by the geneweb and gwsetup daemons.
+en: It is also not recommended to use ports 2316 or 2317 that are already used by the geneweb and gwsetup daemons.
+fr: Il est également déconseillé d'utiliser les ports 2316 ou 2317 qui sont déjà utilisés par les services geneweb et gwsetup.
+
+    Your configuration file is:
+en: Your configuration file is:
+fr: Votre fichier de configuration est:
