diff --git a/build/debian/changelog b/build/debian/changelog
index af2141bf6db56fdfa352a50ac38dc0a352517625..b53a9bb741fa00bf7d133eb175b557b6f8fda21d 100644
--- a/build/debian/changelog
+++ b/build/debian/changelog
@@ -3,7 +3,7 @@ dolibarr (3.5.0-3) unstable; urgency=low
   [ Laurent Destailleur (eldy) ]
   * New upstream release.
     
- -- Laurent Destailleur (eldy) <eldy@users.sourceforge.net>  Mon, 30 Dec 2013 12:00:00 +0100     
+ -- Laurent Destailleur (eldy) <eldy@users.sourceforge.net>  Fri, 31 Jan 2014 12:00:00 +0100     
 
 dolibarr (3.4.2-3) unstable; urgency=low
 
@@ -17,11 +17,11 @@ dolibarr (3.4.1-3) unstable; urgency=low
   [ Laurent Destailleur (eldy) ]
   * Maintenance release.
     
- -- Laurent Destailleur (eldy) <eldy@users.sourceforge.net>  Mon, 22 Apr 2013 12:00:00 +0100     
+ -- Laurent Destailleur (eldy) <eldy@users.sourceforge.net>  Mon, 27 Apr 2013 12:00:00 +0100     
 
 dolibarr (3.4.0-3) unstable; urgency=low
 
   [ Laurent Destailleur (eldy) ]
   * Maintenance release.
     
- -- Laurent Destailleur (eldy) <eldy@users.sourceforge.net>  Mon, 22 Apr 2013 12:00:00 +0100     
+ -- Laurent Destailleur (eldy) <eldy@users.sourceforge.net>  Mon, 22 Apr 2013 12:00:00 +0100
\ No newline at end of file
diff --git a/build/debian/control b/build/debian/control
index ac65f0b9070633826833eed3f6798c848ac483ad..a293319d4538a4ad3ee40cf2dbc621e2047aa76d 100755
--- a/build/debian/control
+++ b/build/debian/control
@@ -1,40 +1,47 @@
 Source: dolibarr
-Maintainer: Laurent Destailleur (eldy) <eldy@users.sourceforge.net>
-Uploaders: Laurent Destailleur (eldy) <eldy@users.sourceforge.net>
-Standards-Version: 3.9.2
 Section: web
 Priority: optional
+Maintainer: Laurent Destailleur (eldy) <eldy@users.sourceforge.net>
+Uploaders: Laurent Destailleur (eldy) <eldy@users.sourceforge.net>
+Standards-Version: 3.9.4
 Homepage: http://www.dolibarr.org
-Build-Depends: debhelper (>= 7), po-debconf, dpatch
+Build-Depends: debhelper (>= 9), po-debconf, dpatch
 Comments: This package need at least debian 7 or ubuntu 13.04 or any distribution based on this version
  
 Package: dolibarr
+Architecture: all
 Depends: libapache2-mod-php5 | libapache2-mod-php5filter | php5-cgi | php5-fpm | php5,
-    php5-mysql | php5-mysqli, 
-    php5-cli, php5-curl, php5-gd, php5-ldap, php-pear, php-mail-mime, php5-geoip,
-	libphp-adodb,
-    libnusoap-php,
-    libphp-pclzip,
-    libfpdi-php, libfpdf-tpl-php, php-fpdf,
-    libjs-jquery, libjs-jquery-ui, libjs-flot, ckeditor,
-    ttf-dejavu-core,
+    php5-cli, 
+# Required PHP extensions
+    php5-mysql | php5-mysqli, php5-curl, php5-gd, php5-ldap, php5-geoip,
+# Required PHP libraries
+    php-pear, php-mail-mime, 
+#    libfpdi-php, libfpdf-tpl-php, php-fpdf,
+#    libphp-adodb,
+#    libnusoap-php,
+#    libphp-pclzip,
+# Required javascript libraries
+#    libjs-jquery, libjs-jquery-ui, libjs-flot, ckeditor,
+# Misc dependencies
+#    fonts-dejavu-core | ttf-dejavu-core,
     xdg-utils,
     mysql-server,
     ${misc:Depends},
     ${perl:Depends}
-Recommends: apache2 | lighttpd | httpd, mysql-client
+Recommends: mysql-client, apache2 | lighttpd | httpd
 Suggests: www-browser
-Architecture: all
 Description: Web based software to manage a small company or foundation
  Dolibarr ERP & CRM is an easy to use open source/free software for small 
  and medium companies, foundations or freelances. It includes different 
  features for Enterprise Resource Planning (ERP) and Customer Relationship
  Management (CRM) but also for different other activities.
+ .
  It's a web software you can install as a standalone program or on any web
  hosting provider to use it from anywhere with any web browser.
  .
- Dolibarr was designed to be easy to use. Only features you need are 
- visible, depending on which module were activated.
+ Dolibarr was designed to be easy to use. Only the features that you need are 
+ visible, depending on which modules were activated.
+ .
  Most common used modules are:
  .
  Customers, Suppliers or Prospects directory,
diff --git a/build/debian/dolibarr.install b/build/debian/dolibarr.install
index 106a3b7dcf8229bfc9f2b046651d6f1bc772e20b..72dff46ed158fdd7496c091b8f5757b405eb9cde 100755
--- a/build/debian/dolibarr.install
+++ b/build/debian/dolibarr.install
@@ -6,7 +6,7 @@ debian/lighttpd/50-dolibarr.conf etc/lighttpd/conf-available/
 debian/install.forced.php.install etc/dolibarr/
 htdocs usr/share/dolibarr/
 scripts usr/share/dolibarr/
-ChangeLog usr/share/doc/dolibarr/
+changelog usr/share/doc/dolibarr/
 README usr/share/doc/dolibarr/
 doc/install usr/share/doc/dolibarr/
 doc/user usr/share/doc/dolibarr/
diff --git a/build/debian/dolibarr.postinst b/build/debian/dolibarr.postinst
index 40fb4142c4077d4dcabe4fcaadc1ccb82b4bc221..f45ab7680c452aab42c07e07b2ff6aa59ae6d391 100644
--- a/build/debian/dolibarr.postinst
+++ b/build/debian/dolibarr.postinst
@@ -13,6 +13,11 @@ set -e
 #          <conflicting-package> <version>
 # for details, see /usr/share/doc/packaging-manual/
 
+if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
+	# Needs to be run outside of functions to have access to parameters
+	. /usr/share/apache2/apache2-maintscript-helper
+fi
+
 setup_empty_conf() {
 	echo Create empty file $config		
     mkdir -p /etc/dolibarr
@@ -37,20 +42,23 @@ enable_install_upgrade_wizard() {
 
 apache_install() {
 	webserver=$1
-	if [ -d /etc/$webserver/conf.d ] && [ ! -e /etc/$webserver/conf.d/dolibarr.conf ]; then
-		echo "Add link for Apache config file"
-		ln -s /etc/$webserver/conf-available/dolibarr.conf /etc/$webserver/conf.d/dolibarr.conf
+	if which a2enconf >/dev/null 2>&1 ;then
+		# a2enconf exists for ubuntu only
+		a2enconf dolibarr
+	else 
+		if [ -d /etc/$webserver/conf.d ] && [ ! -e /etc/$webserver/conf.d/dolibarr.conf ]; then
+			echo "Add link for Apache config file"
+			ln -s /etc/$webserver/conf-available/dolibarr.conf /etc/$webserver/conf.d/dolibarr.conf
+		fi
 	fi
 }
 
 lighttpd_install() {
-	if [ ! -f /etc/lighttpd/conf-available/50-dolibarr.conf ] ; then
-		if which lighty-enable-mod >/dev/null 2>&1 ; then
-			echo "Enable lighttpd link for dolibarr config file"
-			lighty-enable-mod dolibarr fastcgi-php
-		else
-			echo "Lighttpd not installed, skipping"
-		fi
+	if which lighty-enable-mod >/dev/null 2>&1 ; then
+		echo "Enable lighttpd link for dolibarr config file"
+		lighty-enable-mod dolibarr fastcgi-php
+	else
+		echo "Lighttpd not installed, skipping"
 	fi
 }
 
@@ -79,6 +87,12 @@ case "$1" in
 		else
 			echo This is not a first install
 		fi
+
+		# Apache 2 setup
+		if which a2enmod >/dev/null 2>&1 ;then
+			a2enmod alias
+		fi
+		
 		apache_install
 		lighttpd_install
 		
diff --git a/build/debian/dolibarr.postrm b/build/debian/dolibarr.postrm
index 38ebf8399c29ad94d0a6bd7289d2aca25e106c11..fa16ed582f0caba863f38d7cb65e9171095f6609 100644
--- a/build/debian/dolibarr.postrm
+++ b/build/debian/dolibarr.postrm
@@ -177,18 +177,19 @@ case "$1" in
 			    passopt="--password='"`echo "$dbadmpass" | sed -e "s/'/'"'"'"'"'"'"'/g"`"'"
 			fi
 			mysqlcmd="mysql $hostopt $passopt -u $dbadmin"
-
+			mysqlcmdnopass="mysql $hostopt -u $dbadmin"
+			
 		    # Now run the drop user
 			if eval $mysqlcmd -f -e "\"DROP USER '$dbuser'@'localhost';\"" ; then
 				echo postrm Database login $dbuser@localhost removed
 			else
-			    error="Unable to run $mysqlcmd -f -e \"DROP USER '$dbuser'@'localhost';\""
+			    error="Unable to run $mysqlcmdnopass -f -e \"DROP USER '$dbuser'@'localhost';\""
 				echo postrm $error
 			fi
 			if eval $mysqlcmd -f -e "\"DROP USER '$dbuser'@'%';\"" ; then
 				echo postrm Database login $dbuser@% removed
 			else
-			    error="Unable to run $mysqlcmd -f -e \"DROP USER '$dbuser'@'%';\""
+			    error="Unable to run $mysqlcmdnopass -f -e \"DROP USER '$dbuser'@'%';\""
 				echo postrm $error
 			fi
 
diff --git a/build/debian/install.forced.php.install b/build/debian/install.forced.php.install
index f5b663b3f4c1dbaec1a93831c7a69b09dbd7cfa3..370cb5353de678eade67916e08c1f30ebf30b4e6 100755
--- a/build/debian/install.forced.php.install
+++ b/build/debian/install.forced.php.install
@@ -27,20 +27,20 @@ $force_install_lockinstall='444';
 
 // Value to overwrite path to use shared libraries/fonts instead of embedded one.
 // If we enable/disable libraries declaration during install, we must also check they are 
-// not removed from package (see in rules file),
-// declared into dependencies (see in control file)
-$force_dolibarr_lib_TCPDF_PATH='';
-$force_dolibarr_lib_FPDF_PATH='/usr/share/php/fpdf';
-$force_dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi';
-$force_dolibarr_lib_ADODB_PATH='/usr/share/php/adodb';
-$force_dolibarr_lib_GEOIP_PATH='';
-$force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap';
-$force_dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip';
-$force_dolibarr_lib_PHPEXCEL_PATH='';
-$force_dolibarr_js_CKEDITOR='/javascript/ckeditor';
-$force_dolibarr_js_JQUERY='/javascript/jquery';
-$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui';
-$force_dolibarr_js_JQUERY_FLOT='/javascript/flot';
-$force_dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf';
+// - not removed from package (see rm in rules file),
+// - declared into dependencies (see Depends in control file)
+//$force_dolibarr_lib_TCPDF_PATH='';
+//$force_dolibarr_lib_FPDF_PATH='/usr/share/php/fpdf';
+//$force_dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi';
+//$force_dolibarr_lib_ADODB_PATH='/usr/share/php/adodb';
+//$force_dolibarr_lib_GEOIP_PATH='';
+//$force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap';
+//$force_dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip';
+//$force_dolibarr_lib_PHPEXCEL_PATH='';
+//$force_dolibarr_js_CKEDITOR='/javascript/ckeditor';
+//$force_dolibarr_js_JQUERY='/javascript/jquery';
+//$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui';
+//$force_dolibarr_js_JQUERY_FLOT='/javascript/flot';
+//$force_dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf';
 
 ?>
\ No newline at end of file
diff --git a/build/debian/rules b/build/debian/rules
index 2ab8af290c1ff8929cf24057dca864eb4009dc04..b1b7ca09aff0acbe1d837d6c3a8a7cf1aaf735b9 100755
--- a/build/debian/rules
+++ b/build/debian/rules
@@ -90,32 +90,33 @@ clean:
 	rm -fr build/rpm
 	rm -fr build/zip
 	
-	# clean from all embedded libraries (we use package dependencies instead)
-	rm -fr htdocs/includes/adodbtime
-	rm -fr htdocs/includes/ckeditor
+	# clean from all PHP embedded libraries (we use package dependencies instead)
+#	rm -fr htdocs/includes/adodbtime
 #	rm -fr htdocs/includes/fpdfi
-	rm -fr htdocs/includes/fonts
-	rm -fr htdocs/includes/geoip
-	rm -fr htdocs/includes/nusoap
-	rm -fr htdocs/includes/odtphp/zip/pclzip
-	rm -fr htdocs/includes/phpmailer
-	rm -fr htdocs/includes/jquery/css
-	rm -fr htdocs/includes/jquery/js
-	rm -fr htdocs/includes/jquery/plugins/flot
-	rm -fr htdocs/includes/jquery/plugins/jstree
-	rm -fr htdocs/includes/jquery/plugins/lightbox
+#	rm -fr htdocs/includes/geoip
+#	rm -fr htdocs/includes/nusoap
+#	rm -fr htdocs/includes/odtphp/zip/pclzip
+	# clean from all JS-CSS embedded libraries (we use package dependencies instead)
+#	rm -fr htdocs/includes/ckeditor
+#	rm -fr htdocs/includes/jquery/js
+#	rm -fr htdocs/includes/jquery/css
+#	rm -fr htdocs/includes/jquery/plugins/flot
+	# clean from all embedded fonts (we use package dependencies instead)
+#	rm -fr htdocs/includes/fonts
+
+	# clean from useless files
 	rm -fr htdocs/includes/jquery/plugins/multiselect
 	rm -fr htdocs/includes/phpexcel/PHPExcel/Shared/PDF
 	rm -fr htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip
 	rm -fr htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-2.33
 	rm -fr htdocs/includes/tcpdf/fonts/freefont-20100919
 	rm -fr htdocs/includes/tcpdf/fonts/utils
-
 	# clean from files to avoid warning of missing dependencies
 	rm -fr htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.py
 
-	# Licence files are included into copyright file.
-	rm -fr htdocs/includes/phpexcel/license.txt
+	# Licence files are already included into copyright file.
+	rm -f  htdocs/includes/jquery/plugins/flot/LICENSE.txt
+	rm -f  htdocs/includes/phpexcel/license.txt
 	rm -f  htdocs/includes/tcpdf/LICENSE.TXT
 
 	dh $@
diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl
index 4751b9a43c90bc2280f9b685160cf750b6fecd83..964b5b58d984c2766d0b794c20388ee88780965d 100755
--- a/build/makepack-dolibarr.pl
+++ b/build/makepack-dolibarr.pl
@@ -46,7 +46,7 @@ $FILENAMETGZ="$PROJECT-$MAJOR.$MINOR.$BUILD";
 $FILENAMEZIP="$PROJECT-$MAJOR.$MINOR.$BUILD";
 $FILENAMEXZ="$PROJECT-$MAJOR.$MINOR.$BUILD";
 $FILENAMERPM="$PROJECT-$MAJOR.$MINOR.$BUILD-$RPMSUBVERSION";
-$FILENAMEDEB="${PROJECT}_${MAJOR}.${MINOR}.${BUILD}";
+$FILENAMEDEB="see later";
 $FILENAMEAPS="$PROJECT-$MAJOR.$MINOR.$BUILD.app";
 $FILENAMEEXEDOLIWAMP="DoliWamp-$MAJOR.$MINOR.$BUILD";
 if (-d "/usr/src/redhat")   { $RPMDIR="/usr/src/redhat"; } # redhat
@@ -365,6 +365,8 @@ if ($nboftargetok) {
         $ret=`rm -f  $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.pl`;    # Avoid errors into rpmlint
         $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/template`;  # Package not valid for most linux distributions (errors reported into compile.js). Package should be embed by modules to avoid problems.
         $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpmailer`;                # Package not valid for most linux distributions (errors reported into file LICENSE). Package should be embed by modules to avoid problems.
+        $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/ckeditor/_source`;		# Keep this removal in case we embed libraries
+        $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/ckeditor/adapters`;	# Keep this removal in case we embed libraries
    	    
 	    $ret=`rm -f  $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt`;
         $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/lib/Mail`;
@@ -613,15 +615,17 @@ if ($nboftargetok) {
             $newbuild =~ s/(dev|alpha)/1/gi;                # dev
             $newbuild =~ s/beta/2/gi;                       # beta
             $newbuild =~ s/rc./3/gi;                        # rc
-            if ($newbuild !~ /-/) { $newbuild.='-4'; }      # finale
-            # now newbuild is 0-1 or 0-4 for example
+            if ($newbuild !~ /-/) { $newbuild.='-3'; }      # finale is same than rc
+            # now newbuild is 0-1 or 0-3 for example
             print "Version is $MAJOR.$MINOR.$newbuild\n";
             $build = $newbuild;
             $build =~ s/-.*$//g;
 			# now build is 0 for example
 			# $build .= '+nmu1';
 			# now build is 0+nmu1 for example
-			
+
+			$FILENAMEDEB="${PROJECT}_${MAJOR}.${MINOR}.${newbuild}";
+
     		print "Remove target ${FILENAMEDEB}_all.deb...\n";
     		unlink("$NEWDESTI/${FILENAMEDEB}_all.deb");
     		print "Remove target ${FILENAMEDEB}.dsc...\n";
@@ -676,12 +680,14 @@ if ($nboftargetok) {
             $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/rpm`;
             $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/zip`;
             # We remove embedded libraries or fonts (this is also inside rules file, target clean)
-	   	    $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor`;
-			$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/fonts`,
-	   	    $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/geoip`;
-	   	    $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/nusoap`;
-            $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/odtphp/zip/pclzip`;
-
+	   	    #$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor`;
+			#$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/fonts`,
+	   	    #$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/geoip`;
+	   	    #$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/nusoap`;
+            #$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/odtphp/zip/pclzip`;
+            # Rename upstream changelog to match debian rules
+			$ret=`mv $BUILDROOT/$PROJECT.tmp/ChangeLog $BUILDROOT/$PROJECT.tmp/changelog`;
+			
             # Prepare source package (init debian dir)
             print "Create directory $BUILDROOT/$PROJECT.tmp/debian\n";
             $ret=`mkdir "$BUILDROOT/$PROJECT.tmp/debian"`;
@@ -753,6 +759,8 @@ if ($nboftargetok) {
 
             chdir("$olddir");
     		
+    		print "You can check package with lintian --pedantic -E -I \"$NEWDESTI/${FILENAMEDEB}_all.deb\"\n";
+    		
     		# Move to final dir
             print "Move *_all.deb to $NEWDESTI\n";
             $ret=`mv $BUILDROOT/*_all.deb "$NEWDESTI/"`;
diff --git a/htdocs/admin/index.php b/htdocs/admin/index.php
index e577f90b6251d190f85957edc4d3b20d9190d40f..47a05684223573e31136fb4616db50b2452aa9db 100644
--- a/htdocs/admin/index.php
+++ b/htdocs/admin/index.php
@@ -88,7 +88,7 @@ print '<br>';
 
 // Show info setup module
 print img_picto('','puce').' '.$langs->trans("SetupDescription4",DOL_URL_ROOT.'/admin/modules.php?mainmenu=home');
-if (count($conf->modules) <= (empty($conf->global->MAIN_MINNB_MODULE)?1:$conf->global->MAIN_MINNB_MODULE))	// If only user module enabled
+if (count($conf->modules) <= (empty($conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING)?1:$conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING))	// If only user module enabled
 {
 	$langs->load("errors");
 	$warnpicto=img_warning($langs->trans("WarningMandatorySetupNotComplete"));
@@ -97,6 +97,7 @@ if (count($conf->modules) <= (empty($conf->global->MAIN_MINNB_MODULE)?1:$conf->g
 print '<br>';
 print '<br>';
 print '<br>';
+print '<br>';
 
 // Add hook to add information
 $reshook=$hookmanager->executeHooks('addHomeSetup',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
diff --git a/htdocs/cashdesk/validation_verif.php b/htdocs/cashdesk/validation_verif.php
index d2b55deccde7bb8afabf4ef581800caf3614ebba..ffaa01b7a94ba790b6a06c9c2d0c9045d41875e8 100644
--- a/htdocs/cashdesk/validation_verif.php
+++ b/htdocs/cashdesk/validation_verif.php
@@ -207,7 +207,7 @@ switch ($action)
 		$invoice->total_ht=$obj_facturation->prixTotalHt();
 		$invoice->total_tva=$obj_facturation->montantTva();
 		$invoice->total_ttc=$obj_facturation->prixTotalTtc();
-		$invoice->note=$note;
+		$invoice->note_private=$note;
 		$invoice->cond_reglement_id=$cond_reglement_id;
 		$invoice->mode_reglement_id=$mode_reglement_id;
 		//print "c=".$invoice->cond_reglement_id." m=".$invoice->mode_reglement_id; exit;
diff --git a/htdocs/compta/sociales/index.php b/htdocs/compta/sociales/index.php
index e96c53895299bab92161e33e840173a1c1ff0082..a8432c38d5213abd96ce22bb2b73841f3524e5fd 100644
--- a/htdocs/compta/sociales/index.php
+++ b/htdocs/compta/sociales/index.php
@@ -27,12 +27,13 @@ require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php';
 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formsocialcontrib.class.php';
 
+$langs->load("compta");
+
 // Security check
 $socid = isset($_GET["socid"])?$_GET["socid"]:'';
 if ($user->societe_id) $socid=$user->societe_id;
 $result = restrictedArea($user, 'tax', '', '', 'charges');
 
-
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
 $page = GETPOST("page",'int');
diff --git a/htdocs/core/ajax/ziptown.php b/htdocs/core/ajax/ziptown.php
index 294458d2352735a4f96786ac850bf4df92c093a4..47cb887c0cce6532ed40b509681d13a5982c7475 100644
--- a/htdocs/core/ajax/ziptown.php
+++ b/htdocs/core/ajax/ziptown.php
@@ -1,6 +1,6 @@
 <?php
-/* Copyright (C) 2010 Regis Houssin       <regis.houssin@capnetworks.com>
- * Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
+/* Copyright (C) 2010     Regis Houssin       <regis.houssin@capnetworks.com>
+ * Copyright (C) 2011-204 Laurent Destailleur <eldy@users.sourceforge.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -73,7 +73,7 @@ if (! empty($_GET['zipcode']) || ! empty($_GET['town']))
     	if ($zipcode) $sql.=" AND z.zip LIKE '" . $db->escape($zipcode) . "%'";
     	if ($town)    $sql.=" AND z.town LIKE '%" . $db->escape($town) . "%'";
     	$sql.= " ORDER BY z.zip, z.town";
-        $sql.= $db->plimit(50); // Avoid pb with bad criteria
+        $sql.= $db->plimit(100); // Avoid pb with bad criteria
 	}
 	else                                               // Use table of third parties
 	{
@@ -87,7 +87,7 @@ if (! empty($_GET['zipcode']) || ! empty($_GET['town']))
         if ($zipcode) $sql.= " s.zip LIKE '".$db->escape($zipcode)."%'";
         if ($town)    $sql.= " s.town LIKE '%" . $db->escape($town) . "%'";
         $sql.= " ORDER BY s.fk_pays, s.zip, s.town";
-        $sql.= $db->plimit(50); // Avoid pb with bad criteria
+        $sql.= $db->plimit(100); // Avoid pb with bad criteria
 	}
 
     //print $sql;
@@ -97,8 +97,8 @@ if (! empty($_GET['zipcode']) || ! empty($_GET['town']))
 	{
 		while ($row = $db->fetch_array($resql))
 		{
-			$country = $row['fk_country']?($langs->trans('Country'.$row['country_code'])!='Country'.$row['country_code']?$langs->trans('Country'.$row['country_code']):$row['country']):'';
-			$county = $row['fk_county']?($langs->trans($row['county_code'])!=$row['county_code']?$langs->trans($row['county_code']):($row['county']!='-'?$row['county']:'')):'';
+			$country = $row['fk_country']?($langs->transnoentitiesnoconv('Country'.$row['country_code'])!='Country'.$row['country_code']?$langs->transnoentitiesnoconv('Country'.$row['country_code']):$row['country']):'';
+			$county = $row['fk_county']?($langs->transnoentitiesnoconv($row['county_code'])!=$row['county_code']?$langs->transnoentitiesnoconv($row['county_code']):($row['county']!='-'?$row['county']:'')):'';
 
 			$row_array['label'] = $row['zip'].' '.$row['town'];
 			$row_array['label'] .= ($county || $country)?' (':'';
diff --git a/htdocs/core/boxes/box_graph_product_distribution.php b/htdocs/core/boxes/box_graph_product_distribution.php
index 521dd33f0e2d2c3b38f793923b671ff3ff7990c4..725ef300125af30189f7a7e346722cbda35c4ff3 100644
--- a/htdocs/core/boxes/box_graph_product_distribution.php
+++ b/htdocs/core/boxes/box_graph_product_distribution.php
@@ -115,9 +115,9 @@ class box_graph_product_distribution extends ModeleBoxes
 		if ($showpropalnb)  $nbofgraph++;
 		if ($showordernb)   $nbofgraph++;
 
-		$paramtitle=$langs->trans("Products").'/'.$langs->trans("Services");
-		if (empty($conf->produit->enabled)) $paramtitle=$langs->trans("Services");
-		if (empty($conf->service->enabled)) $paramtitle=$langs->trans("Products");
+		$paramtitle=$langs->transnoentitiesnoconv("Products").'/'.$langs->transnoentitiesnoconv("Services");
+		if (empty($conf->produit->enabled)) $paramtitle=$langs->transnoentitiesnoconv("Services");
+		if (empty($conf->service->enabled)) $paramtitle=$langs->transnoentitiesnoconv("Products");
 
 		$socid=empty($user->societe_id)?0:$user->societe_id;
 		$userid=0;	// No filter on user creation
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 8b572bc5635c0f1b32d1c3bfccd468fb5249952f..7aa09f556b9be9cc055cfbbbb1b86ec8b8f2a89a 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -705,7 +705,7 @@ class Form
     	}
     	else
     	{*/
-    		print $this->select_thirdparty_list($selected,$htmlname,$filter,1,0,$forcecombo,array(),'',0,$limit);
+    		return $this->select_thirdparty_list($selected,$htmlname,$filter,1,0,$forcecombo,array(),'',0,$limit);
     	//}
     }
 
diff --git a/htdocs/core/tpl/contacts.tpl.php b/htdocs/core/tpl/contacts.tpl.php
index c2c2ef9a452ee24dea709c0aff978fe82e376540..875b81cd05ee5d89937679bc2eda6abd4319a08e 100644
--- a/htdocs/core/tpl/contacts.tpl.php
+++ b/htdocs/core/tpl/contacts.tpl.php
@@ -34,6 +34,9 @@ elseif ($module == 'fichinter')			{ $permission=$user->rights->ficheinter->creer
 elseif ($module == 'invoice_supplier')	{ $permission=$user->rights->fournisseur->facture->creer; }
 elseif ($module == 'order_supplier')	{ $permission=$user->rights->fournisseur->commande->creer; }
 elseif ($module == 'project')			{ $permission=$user->rights->projet->creer; }
+elseif ($module == 'action')			{ $permission=$user->rights->agenda->myactions->create; }
+elseif ($module == 'shipping')			{ $permission=$user->rights->expedition->creer; }
+elseif ($module == 'project_task')		{ $permission=$user->rights->projet->creer; }
 elseif (! isset($permission))			{ $permission=$user->rights->$module->creer; } // If already defined by caller page
 
 $formcompany= new FormCompany($db);
diff --git a/htdocs/fourn/facture/contact.php b/htdocs/fourn/facture/contact.php
index c5205c47815bb80e442b0bd285ebfdcb3543f81a..9010abbb50fb892eb738fc45172d889370ed6b46 100644
--- a/htdocs/fourn/facture/contact.php
+++ b/htdocs/fourn/facture/contact.php
@@ -155,7 +155,7 @@ if ($id > 0 || ! empty($ref))
 
 		// Third party
 		print "<tr><td>".$langs->trans("Supplier")."</td>";
-		print '<td colspan="3">'.$object->client->getNomUrl(1,'compta').'</td></tr>';
+		print '<td colspan="3">'.$object->thirdparty->getNomUrl(1,'supplier').'</td></tr>';
 		print "</table>";
 
 		print '</div>';
diff --git a/htdocs/fourn/facture/document.php b/htdocs/fourn/facture/document.php
index 1cd4d9824660885338e2814a5d0a73df6e42e5ab..6c47f66ec7d5fd958d3b36e260bc9c364f221230 100644
--- a/htdocs/fourn/facture/document.php
+++ b/htdocs/fourn/facture/document.php
@@ -120,7 +120,7 @@ if ($object->id > 0)
 	print "</tr>\n";
 
 	// Thirdparty
-	print '<tr><td>'.$langs->trans('Supplier').'</td><td colspan="3">'.$object->thirdparty->getNomUrl(1).'</td></tr>';
+	print '<tr><td>'.$langs->trans('Supplier').'</td><td colspan="3">'.$object->thirdparty->getNomUrl(1,'supplier').'</td></tr>';
 
 	// Type
 	print '<tr><td>'.$langs->trans('Type').'</td><td colspan="4">';
diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php
index 06c8d9d590d8918baee74c7042428576b91d5c0c..cf47afcf10c7686f3d9cfe27f4f38fa4334b6ac0 100644
--- a/htdocs/fourn/facture/fiche.php
+++ b/htdocs/fourn/facture/fiche.php
@@ -1520,7 +1520,7 @@ else
         print '</td></tr>';
 
         // Third party
-        print '<tr><td>'.$langs->trans('Supplier').'</td><td colspan="4">'.$societe->getNomUrl(1);
+        print '<tr><td>'.$langs->trans('Supplier').'</td><td colspan="4">'.$societe->getNomUrl(1,'supplier');
         print ' &nbsp; (<a href="'.DOL_URL_ROOT.'/fourn/facture/list.php?socid='.$object->socid.'">'.$langs->trans('OtherBills').'</a>)</td>';
         print '</tr>';
 
diff --git a/htdocs/fourn/facture/note.php b/htdocs/fourn/facture/note.php
index b4bb99dcefc64886a523bd76ab6dcea0bad690ce..7947b9be020e575764515fc88fcd92bf38fc645b 100644
--- a/htdocs/fourn/facture/note.php
+++ b/htdocs/fourn/facture/note.php
@@ -101,7 +101,7 @@ if ($object->id > 0)
 	print "</tr>\n";
 
 	// Company
-	print '<tr><td>'.$langs->trans('Supplier').'</td><td colspan="3">'.$object->thirdparty->getNomUrl(1).'</td></tr>';
+	print '<tr><td>'.$langs->trans('Supplier').'</td><td colspan="3">'.$object->thirdparty->getNomUrl(1,'supplier').'</td></tr>';
 
 	// Type
 	print '<tr><td>'.$langs->trans('Type').'</td><td colspan="4">';
diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php
index 8f3f29098326ad42867be35dd2b78956633943f7..352c3150c5247e27e0a0f0118cc98b09978f1db5 100644
--- a/htdocs/fourn/facture/paiement.php
+++ b/htdocs/fourn/facture/paiement.php
@@ -96,7 +96,7 @@ if ($action == 'add_paiement')
     {
         // Si module bank actif, un compte est obligatoire lors de la saisie
         // d'un paiement
-        if (! $_POST['accountid'])
+        if ($_POST['accountid'] <= 0)
         {
         	setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentities('AccountToCredit')), 'errors');
             $error++;
@@ -298,13 +298,16 @@ if ($action == 'create' || $action == 'add_paiement')
 	                        $objp = $db->fetch_object($resql);
 	                        $var=!$var;
 	                        print '<tr '.$bc[$var].'>';
-	                        print '<td><a href="fiche.php?facid='.$objp->facid.'">'.img_object($langs->trans('ShowBill'),'bill').' '.$objp->ref;
-	                        print '</a></td>';
+	                        print '<td>';
+	                        $invoicesupplierstatic->ref=$objp->ref;
+	                        $invoicesupplierstatic->id=$objp->facid;
+	                        print $invoicesupplierstatic->getNomUrl(1);
+	                        print '</td>';
 	                        print '<td>'.$objp->ref_supplier.'</td>';
 	                        if ($objp->df > 0 )
 	                        {
 	                            print '<td align="center">';
-	                            print dol_print_date($db->jdate($objp->df)).'</td>';
+	                            print dol_print_date($db->jdate($objp->df), 'day').'</td>';
 	                        }
 	                        else
 	                        {
diff --git a/htdocs/projet/tasks/contact.php b/htdocs/projet/tasks/contact.php
index 80ddc0cd1783720cf87e74ffd6d37f2feae20d76..27559938626605cc9b125536662fac3e43c3e86b 100644
--- a/htdocs/projet/tasks/contact.php
+++ b/htdocs/projet/tasks/contact.php
@@ -283,7 +283,7 @@ if ($id > 0 || ! empty($ref))
 			print '<input type="hidden" name="action" value="addcontact">';
 			print '<input type="hidden" name="source" value="internal">';
 			print '<input type="hidden" name="id" value="'.$id.'">';
-			print '<input type="hidden" name="withproject" value="'.$withproject.'">';
+			if ($withproject) print '<input type="hidden" name="withproject" value="'.$withproject.'">';
 
 			// Ligne ajout pour contact interne
 			print "<tr ".$bc[$var].">";
@@ -299,7 +299,7 @@ if ($id > 0 || ! empty($ref))
 			print '<td colspan="1">';
 			// On recupere les id des users deja selectionnes
 			$contactsofproject=$projectstatic->getListContactId('internal');
-			$form->select_users($user->id,'contactid',0,'',0,'',$contactsofproject);
+			$form->select_users($user->id,'userid',0,'',0,'',$contactsofproject);
 			print '</td>';
 			print '<td>';
 			$formcompany->selectTypeContact($object, '', 'type','internal','rowid');
@@ -317,6 +317,7 @@ if ($id > 0 || ! empty($ref))
 				print '<input type="hidden" name="action" value="addcontact">';
 				print '<input type="hidden" name="source" value="external">';
 				print '<input type="hidden" name="id" value="'.$object->id.'">';
+				if ($withproject) print '<input type="hidden" name="withproject" value="'.$withproject.'">';
 
 				$var=!$var;
 				print "<tr ".$bc[$var].">";
diff --git a/htdocs/webservices/server_user.php b/htdocs/webservices/server_user.php
index 3a7d0a8928361117fb0654fe8daa8258fe8224aa..c33bfaf07eab84d00860547df162e344e69759f7 100644
--- a/htdocs/webservices/server_user.php
+++ b/htdocs/webservices/server_user.php
@@ -181,7 +181,8 @@ $thirdpartywithuser_fields = array(
 	'tva_intra' => array('name'=>'tva_intra','type'=>'xsd:string'),
 	// 	For user
 	'login' => array('name'=>'login','type'=>'xsd:string'),
-	'password' => array('name'=>'password','type'=>'xsd:string')
+	'password' => array('name'=>'password','type'=>'xsd:string'),
+	'group_id' => array('name'=>'group_id','type'=>'xsd:string')
 );
 
 //Retreive all extrafield for contact
@@ -523,6 +524,7 @@ function createUserFromThirdparty($authentication,$thirdpartywithuser)
 				}
 				else
 				{
+					$db->begin();
 					/*
 					 * Company creation
 					 */
@@ -533,6 +535,25 @@ function createUserFromThirdparty($authentication,$thirdpartywithuser)
 					$thirdparty->town=$thirdpartywithuser['town'];
 					$thirdparty->country_id=$thirdpartywithuser['country_id'];
 					$thirdparty->country_code=$thirdpartywithuser['country_code'];
+
+					// find the country id by code
+					$langs->load("dict");
+
+					$sql = "SELECT rowid";
+					$sql.= " FROM ".MAIN_DB_PREFIX."c_pays";
+					$sql.= " WHERE active = 1";
+					$sql.= " AND code='".$thirdparty->country_code."'";
+
+					$resql=$db->query($sql);
+					if ($resql)
+					{
+						$num = $db->num_rows($resql);
+						if ($num)
+						{
+							$obj = $db->fetch_object($resql);
+							$thirdparty->country_id      = $obj->rowid;
+						}
+					}
 					$thirdparty->phone=$thirdpartywithuser['phone'];
 					$thirdparty->fax=$thirdpartywithuser['fax'];
 					$thirdparty->email=$thirdpartywithuser['email'];
@@ -570,6 +591,9 @@ function createUserFromThirdparty($authentication,$thirdpartywithuser)
 						$contact->phone_pro = $thirdparty->phone;
 						$contact->phone_mobile = $thirdpartywithuser['phone_mobile'];
 						$contact->fax = $thirdparty->fax;
+						$contact->statut = 1;
+						$contact->country_id = $thirdparty->country_id;
+						$contact->country_code = $thirdparty->country_code;
 
 						//Retreive all extrafield for thirdsparty
 						// fetch optionals attributes and labels
@@ -591,33 +615,29 @@ function createUserFromThirdparty($authentication,$thirdpartywithuser)
 							*
 							*/
 							$edituser = new User($db);
-							$db->begin();
 
 							$id = $edituser->create_from_contact($contact,$thirdpartywithuser["login"]);
 							if ($id > 0)
 							{
-								$edituser->setPassword($user,trim($thirdpartywithuser['password']));
-							}
-							else
-							{
-								$error++;
-								$errorcode='NOT_CREATE'; $errorlabel='Object not create : no contact found or create';
-							}
+								$edituser->setPassword($fuser,trim($thirdpartywithuser['password']));
 
-
-							if (! $error && $id > 0)
-							{
-								$db->commit();
+								if($thirdpartywithuser['group_id'] > 0 )
+									$edituser->SetInGroup($thirdpartywithuser['group_id'],$conf->entity);
 							}
 							else
 							{
-								$db->rollback();
 								$error++;
-								$errorcode='NOT_CREATE'; $errorlabel='Contact not create';
+								$errorcode='NOT_CREATE'; $errorlabel='Object not create : '.$edituser->error;
 							}
 						}
+						else
+						{
+							$error++;
+							$errorcode='NOT_CREATE'; $errorlabel='Object not create : '.$contact->error;
+						}
 
 						if(!$error) {
+							$db->commit();
 							$objectresp=array('result'=>array('result_code'=>'OK', 'result_label'=>'SUCCESS'),'id'=>$socid_return);
 							$error=0;
 						}
@@ -645,6 +665,7 @@ function createUserFromThirdparty($authentication,$thirdpartywithuser)
 
 	if ($error)
 	{
+		$db->rollback();
 		$objectresp = array(
 		'result'=>array('result_code' => $errorcode, 'result_label' => $errorlabel)
 		);