diff --git a/build/exe/doliwamp/doliwamp.iss b/build/exe/doliwamp/doliwamp.iss
index 25d30de5a7e0f93430b022d5e7bbe1235838077a..07473ee9287492cb33deba9079a213d8f6bc364e 100644
--- a/build/exe/doliwamp/doliwamp.iss
+++ b/build/exe/doliwamp/doliwamp.iss
@@ -167,7 +167,7 @@ var value: String;
 
 function InitializeSetup(): Boolean;
 begin
-  Result := MsgBox('You will install or upgrade DoliWamp (Apache+Mysql+PHP+Dolibarr) on your computer.' #13#13 'This setup install or upgrade Dolibarr ERP-CRM and third party softwares (Apache, Mysql and PHP) configured for a Dolibarr usage.' #13#13 'If you want to share your Apache, Mysql and PHP with other projects than Dolibarr, it is recommended to make ' #13 'a manual installation of Dolibarr on your own Apache, Mysql and PHP installation.' #13#13 'Do you want to start installation/upgrade process ?', mbConfirmation, MB_YESNO) = idYes;
+  Result := MsgBox('You will install or upgrade DoliWamp (Apache+Mysql+PHP+Dolibarr) on your computer.' #13#13 'This setup install or upgrade Dolibarr ERP-CRM and third party softwares (Apache, Mysql and PHP) configured for a Dolibarr usage.' #13#13 'If you have technical knowledge and plan to share your Apache, Mysql and PHP with other projects than Dolibarr, you should not use this assistant and make a manual installation of Dolibarr on an existing Apache, Mysql and PHP installation (installed by WampServer for example).' #13#13 'Do you want to start installation/upgrade process ?', mbConfirmation, MB_YESNO) = idYes;
 end;
 
 procedure InitializeWizard();
diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php
index c584a400fd5aab5d0ae907a97a76c574de058bf7..37892228e9d7b61ae2264d6d8440f11a698d266a 100644
--- a/htdocs/comm/propal.php
+++ b/htdocs/comm/propal.php
@@ -1405,7 +1405,7 @@ if ($id > 0 || ! empty($ref))
 					$formMarkup.= '<input type="submit" class="button" name="validate" value="'.$langs->trans('Validate').'">'."\n";
 					//$formMarkup.= ' &nbsp; <input onClick="Dialog.closeInfo()" type="button" class="button" name="cancel" value="'.$langs->trans('Cancel').'">'."\n";
 					$formMarkup.= '</td></tr></table></form>'."\n";
-					$formMarkup.= ajax_updaterWithID("rate".$i,"markup","sellingprice_ht".$i,"/product/ajaxproducts.php","&count=".$i,"working")."\n";
+					$formMarkup.= ajax_updaterWithID("rate".$i,"markup","sellingprice_ht".$i,DOL_URL_ROOT."/product/ajaxproducts.php","&count=".$i,"working")."\n";
 
 
 					print '<td align="right">'."\n";
diff --git a/htdocs/html.formcompany.class.php b/htdocs/html.formcompany.class.php
index 9a61fe8ac3778d4056739fb4c0967ebb5823b32a..c2c572b484dd16801af64bda521f0aae71c3ad0a 100644
--- a/htdocs/html.formcompany.class.php
+++ b/htdocs/html.formcompany.class.php
@@ -487,7 +487,7 @@ class FormCompany
 				{
 					print '<input type="text" size="30" id="'.$htmlname.'" name="'.$htmlname.'" value="'.$obj->nom.'" '.$htmloption.' />';
 				}
-				print ajax_autocompleter(($socid?$socid:-1),$htmlname,'/societe/ajaxcompanies.php','');
+				print ajax_autocompleter(($socid?$socid:-1),$htmlname,DOL_URL_ROOT.'/societe/ajaxcompanies.php','');
 				print '</td>';
 				print '<td class="nobordernopadding" align="left" width="16">';
 				print ajax_indicator($htmlname,'working');
diff --git a/htdocs/lib/ajax.lib.php b/htdocs/lib/ajax.lib.php
index 772ad3a742b62da7d9299e389d751f615f0d936b..3dc1d0876c3ec5d3314513a4ec984f1535b0e6e6 100644
--- a/htdocs/lib/ajax.lib.php
+++ b/htdocs/lib/ajax.lib.php
@@ -32,12 +32,12 @@ function ajax_indicator($htmlname,$indicator='working')
 
 /**
  *	\brief     Get value of a field, do Ajax process and show result
- *  \param	   htmlname            nom et id du champ
- *  \param     keysearch           nom et id complementaire du champ de collecte
- *  \param	   url                 chemin du fichier de reponse : /chemin/fichier.php
+ *  \param	   htmlname            Name and id of field
+ *  \param     keysearch           Optional field to filter
+ *  \param	   url                 Full relative URL of page
  *  \param     option              champ supplementaire de recherche dans les parametres
  *  \param     indicator           Nom de l'image gif sans l'extension
- *  \return    script              script complet
+ *  \return    string              script complet
  */
 function ajax_updater($htmlname,$keysearch,$url,$option='',$indicator='working')
 {
@@ -63,7 +63,7 @@ function ajax_updater($htmlname,$keysearch,$url,$option='',$indicator='working')
 			   function(){
 				  var myAjax = new Ajax.Updater( {
 					 success: \'ajdynfield'.$htmlname.'\'},
-					 \''.DOL_URL_ROOT.$url.'\', {
+					 \''.$url.'\', {
 						method: \'get\',
 						parameters: "'.$keysearch.'="+$F("'.$keysearch.$htmlname.'")+"&htmlname='.$htmlname.$option.'"
 					 });
@@ -82,7 +82,7 @@ function ajax_updater($htmlname,$keysearch,$url,$option='',$indicator='working')
  *	\param	    url                 chemin du fichier de reponse : /chemin/fichier.php
  *	\param     	option              champ supplementaire de recherche dans les parametres
  *	\param     	indicator           Nom de l'image gif sans l'extension
- *	\return    	script              script complet
+ *	\return    	string              script complet
  */
 function ajax_updaterWithID($htmlname,$keysearch,$id,$url,$option='',$indicator='working')
 {
@@ -106,7 +106,7 @@ function ajax_updaterWithID($htmlname,$keysearch,$id,$url,$option='',$indicator=
 	$script.='new Form.Element.DelayedObserver($("'.$keysearch.$htmlname.'"), 1,
 			   function(){
 			   var elementHTML = $(\''.$id.'\');
-			   var url = \''.DOL_URL_ROOT.$url.'\';
+			   var url = \''.$url.'\';
 			   o_options = new Object();
 			   o_options = {method: \'get\',parameters: "'.$keysearch.'="+$F("'.$keysearch.$htmlname.'")+"'.$option.'"};
 				 var myAjax = new Ajax.Updater(elementHTML,url,o_options);
@@ -121,7 +121,7 @@ function ajax_updaterWithID($htmlname,$keysearch,$id,$url,$option='',$indicator=
  *	\param	    htmlname            nom et id du champ
  *	\param	    url                 chemin du fichier de reponse : /chemin/fichier.php
  *	\param     	indicator           nom de l'image gif sans l'extension
- *	\return    	script              script complet
+ *	\return    	string              script complet
  */
 function ajax_autocompleter($selected='',$htmlname,$url,$indicator='working')
 {
@@ -131,7 +131,7 @@ function ajax_autocompleter($selected='',$htmlname,$url,$indicator='working')
 
 	$script.= '<div id="result'.$htmlname.'" class="autocomplete"></div>';
 	$script.= '<script type="text/javascript">';
-	$script.= 'new Ajax.Autocompleter(\''.$htmlname.'\',\'result'.$htmlname.'\',\''.DOL_URL_ROOT.$url.'\',{
+	$script.= 'new Ajax.Autocompleter(\''.$htmlname.'\',\'result'.$htmlname.'\',\''.$url.'\',{
 	           method: \'post\',
 	           paramName: \''.$htmlname.'\',
 	           minChars: \'1\',