diff --git a/htdocs/lib/CMailFile.class.php b/htdocs/lib/CMailFile.class.php
index 50058cfb55126e8856387f97c75b3406490f978c..311a8056bfe59ca13b43d717626e9a9af3179e0b 100644
--- a/htdocs/lib/CMailFile.class.php
+++ b/htdocs/lib/CMailFile.class.php
@@ -53,7 +53,7 @@ class CMailFile
 	var $error='';
 
 	var $smtps;				// Contains SMTPs object (if this method is used)
-	
+
 	// simplemail
 	var $simplemail;  // Contains simplemail object (if this method is used)
 	var $sName;
@@ -99,7 +99,7 @@ class CMailFile
 		$this->eol="\n";
 		if (eregi('^win',PHP_OS)) $this->eol="\r\n";
 		if (eregi('^mac',PHP_OS)) $this->eol="\r";
-		
+
 		// On defini mime_boundary
 		$this->mime_boundary = md5(uniqid("dolibarr"));
 
@@ -172,7 +172,7 @@ class CMailFile
 			$text_body = "";
 			$text_encoded = "";
 
-			// En-tete dans $smtp_headers
+			// Define smtp_headers
 			$this->subject = $subject;
 			$this->addr_from = $from;
 			$this->errors_to = $errors_to;
@@ -182,31 +182,27 @@ class CMailFile
 			$this->deliveryreceipt = $deliveryreceipt;
 			$smtp_headers = $this->write_smtpheaders();
 
-			// En-tete suite dans $mime_headers
-			//			if ($this->atleastonefile || $this->atleastoneimage)
-			//			{
+			// Define mime_headers
 			$mime_headers = $this->write_mimeheaders($filename_list, $mimefilename_list);
-			//			}
 
 			if (! empty($this->html)) $msg = $this->html;
 
-			// Corps message dans $text_body
+			// Define body in text_body
 			$text_body = $this->write_body($msg);
 
-			// On encode les images
+			// Encode images
 			if ($this->atleastoneimage)
 			{
 				$images_encoded = $this->write_images($this->images_encoded);
-				//print 'xx'.sizeof($this->images_encoded['encoded']);
 			}
 
-			// Corps message suite (fichiers attaches) dans $text_encoded
+			// Add attachments to text_encoded
 			if ($this->atleastonefile)
 			{
 				$text_encoded = $this->write_files($filename_list,$mimetype_list,$mimefilename_list);
 			}
 
-			// On defini $this->headers et $this->message
+			// We now define $this->headers et $this->message
 			$this->headers = $smtp_headers . $mime_headers;
 
 			$this->message = $text_body . $images_encoded . $text_encoded;
@@ -221,29 +217,29 @@ class CMailFile
 		{
 			// Todo: Use simplemail library
 			// ------------------------------------------
-			
+
 			require_once(DOL_DOCUMENT_ROOT."/includes/simplemail/class.mail.php");
-				
+
 			$mail = new simplemail();
-			
+
 			// Bundaries
 			$mail->B1B = $this->mime_boundary;
 			$mail->B2B = $this->related_boundary;
 			$mail->B3B = $this->alternative_boundary;
-			
+
 			$mail->XMailer = "Dolibarr version " . DOL_VERSION ." (using simplemail)";
-			
+
 			// Ajout de l'expediteur
 			$this->addr_from = $from;
 			$this->splitAddress($from);
 			$mail->addfrom($this->sEmail,$this->sName);
-			
+
 			// Ajout accuse reception
 			if ($deliveryreceipt)
 			{
 				$mail->adddeliveryreceipt($this->sEmail,$this->sName);
 			}
-			
+
 			// Ajout du destinataire
 			$arrayTo=split(',',$to);
 			foreach($arrayTo as $val)
@@ -262,7 +258,7 @@ class CMailFile
 					$mail->addcc($this->sEmail,$this->sName);
 				}
 			}
-			
+
 			// Ajout carbon copy cache
 			if (!empty($addr_bcc))
 			{
@@ -273,10 +269,10 @@ class CMailFile
 					$mail->addbcc($this->sEmail,$this->sName);
 				}
 			}
-				
+
 			//ajout du sujet
 			$mail->addsubject($this->encodetorfc2822($subject));
-			
+
 			// Ajout du message
 			if ($this->msgishtml)
 			{
@@ -284,7 +280,7 @@ class CMailFile
 				{
 					$msg = $this->html;
 					$msg = $this->checkIfHTML($msg);
-					
+
 					// un attachement html ( image jointe afficher ds le html ).
 					if ($this->atleastoneimage)
 					{
@@ -302,7 +298,7 @@ class CMailFile
 				// le message format text
 				$mail->text = $msg;
 			}
-			
+
 			// une piece jointe.
 			if ($this->atleastonefile)
 			{
@@ -323,7 +319,7 @@ class CMailFile
 			$smtps->setCharSet($conf->file->character_set_client);
 
 			$smtps->setSubject($this->encodetorfc2822($subject));
-			$smtps->setTO(getValidAddress($to,2));
+			$smtps->setTO($this->getValidAddress($to,2));
 			$smtps->setFrom($from);
 
 			//if ($this->atleastoneimage)	$msg = $this->html;
@@ -396,19 +392,18 @@ class CMailFile
 				dol_syslog("CMailFile::sendfile header=\n".$this->headers, LOG_DEBUG);
 				//dol_syslog("CMailFile::sendfile message=\n".$message);
 
-
-				// Si Windows, addr_from doit obligatoirement etre defini
+				// If Windows, sendmail_from must be defined
 				if (isset($_SERVER["WINDIR"]))
 				{
 					if (empty($this->addr_from)) $this->addr_from = 'robot@mydomain.com';
-					@ini_set('sendmail_from',getValidAddress($this->addr_from,2));
+					@ini_set('sendmail_from',$this->getValidAddress($this->addr_from,2));
 				}
 
 				// Forcage parametres
 				if (! empty($conf->global->MAIN_MAIL_SMTP_SERVER)) ini_set('SMTP',$conf->global->MAIN_MAIL_SMTP_SERVER);
 				if (! empty($conf->global->MAIN_MAIL_SMTP_PORT))   ini_set('smtp_port',$conf->global->MAIN_MAIL_SMTP_PORT);
 
-				if ($conf->global->MAIN_MAIL_SENDMODE == 'mail') $dest=getValidAddress($this->addr_to,2);
+				if ($conf->global->MAIN_MAIL_SENDMODE == 'mail') $dest=$this->getValidAddress($this->addr_to,2);
 				if (! $dest && $conf->global->MAIN_MAIL_SENDMODE == 'mail')
 				{
 					$this->error="Failed to send mail to SMTP=".ini_get('SMTP').", PORT=".ini_get('smtp_port')."<br>Recipient address '$dest' invalid";
@@ -417,7 +412,6 @@ class CMailFile
 				else
 				{
 					dol_syslog("CMailFile::sendfile: mail start SMTP=".ini_get('SMTP').", PORT=".ini_get('smtp_port'), LOG_DEBUG);
-					//dol_syslog("to=".getValidAddress($this->addr_to,2).", subject=".$this->subject.", message=".stripslashes($this->message).", header=".$this->headers);
 
 					$bounce = '';
 					if ($conf->global->MAIN_MAIL_ALLOW_SENDMAIL_F)
@@ -439,7 +433,7 @@ class CMailFile
 					else
 					{
 						$res = mail($dest,$this->encodetorfc2822($this->subject),$this->message,$this->headers, $bounce);
-					}					
+					}
 
 					if (! $res)
 					{
@@ -582,7 +576,7 @@ class CMailFile
 	}
 
 	/**
-	 \brief		Creation des headers smtp
+	 *	\brief		Create SMTP headers
 	 */
 	function write_smtpheaders()
 	{
@@ -591,50 +585,35 @@ class CMailFile
 
 		// Sender
 		//$out .= "X-Sender: ".getValidAddress($this->addr_from,2).$this->eol;
-		$out .= "From: ".getValidAddress($this->addr_from,0).$this->eol;
-		$out .= "Return-Path: ".getValidAddress($this->addr_from,0).$this->eol;
-		if (isset($this->reply_to)  && $this->reply_to)  $out .= "Reply-To: ".getValidAddress($this->reply_to,2).$this->eol;
-		if (isset($this->errors_to) && $this->errors_to) $out .= "Errors-To: ".getValidAddress($this->errors_to,2).$this->eol;
+		$out .= "From: ".$this->getValidAddress($this->addr_from,0,1).$this->eol;
+		$out .= "Return-Path: ".$this->getValidAddress($this->addr_from,0,1).$this->eol;
+		if (isset($this->reply_to)  && $this->reply_to)  $out .= "Reply-To: ".$this->getValidAddress($this->reply_to,2).$this->eol;
+		if (isset($this->errors_to) && $this->errors_to) $out .= "Errors-To: ".$this->getValidAddress($this->errors_to,2).$this->eol;
 
 		// Receiver
-		if (isset($this->addr_cc)   && $this->addr_cc)   $out .= "Cc: ".getValidAddress($this->addr_cc,2).$this->eol;
-		if (isset($this->addr_bcc)  && $this->addr_bcc)  $out .= "Bcc: ".getValidAddress($this->addr_bcc,2).$this->eol;
+		if (isset($this->addr_cc)   && $this->addr_cc)   $out .= "Cc: ".$this->getValidAddress($this->addr_cc,2).$this->eol;
+		if (isset($this->addr_bcc)  && $this->addr_bcc)  $out .= "Bcc: ".$this->getValidAddress($this->addr_bcc,2).$this->eol;
 
 		// Accuse reception
-		if (isset($this->deliveryreceipt) && $this->deliveryreceipt == 1) $out .= "Disposition-Notification-To: ".getValidAddress($this->addr_from,2).$this->eol;
+		if (isset($this->deliveryreceipt) && $this->deliveryreceipt == 1) $out .= "Disposition-Notification-To: ".$this->getValidAddress($this->addr_from,2).$this->eol;
 
 		//$out .= "X-Priority: 3".$this->eol;
 		$out.= "X-Mailer: Dolibarr version " . DOL_VERSION ." (using php mail)".$this->eol;
 		$out.= "MIME-Version: 1.0".$this->eol;
 
-		//		if ($this->atleastoneimage)
-		//		{
-		//if (! $this->atleastonefile)
 		$out.= "Content-Type: multipart/related; boundary=\"".$this->mime_boundary."\"".$this->eol;
 		$out.= "Content-Transfer-Encoding: 8bit".$this->eol;
-		/*		}
-		 else if ($this->msgishtml)
-		 {
-		 if (! $this->atleastonefile) $out.= "Content-Type: text/html; boundary=\"".$this->mime_boundary."\"".$this->eol;
-		 $out.= "Content-Transfer-Encoding: 8bit".$this->eol;
-		 }
-		 else
-		 {
-		 if (! $this->atleastonefile) $out.= "Content-Type: text/plain; boundary=\"".$this->mime_boundary."\"".$this->eol;
-		 $out.= "Content-Transfer-Encoding: 8bit".$this->eol;
-		 }
-		*/
 
 		$out.=$this->eol;
-		dol_syslog("CMailFile::write_smtpheaders smtp_header=\n".$out, LOG_DEBUG);
+		dol_syslog("CMailFile::write_smtpheaders smtp_header=\n".$out);
 		return $out;
 	}
 
 
 	/**
-	 \brief 		Creation header MIME
-	 \param 		filename_list
-	 \param 		mimefilename_list
+	 *	\brief 		Creation header MIME
+	 *	\param 		filename_list
+	 *	\param 		mimefilename_list
 	 */
 	function write_mimeheaders($filename_list, $mimefilename_list)
 	{
@@ -647,25 +626,12 @@ class CMailFile
 			{
 				if ($filename_list[$i])
 				{
-					//if (! $mimedone)
-					//{
-					//						$out.= "Content-Type: multipart/mixed; boundary=\"".$this->mime_boundary."\"".$this->eol;
-					//	$mimedone=1;
-					//}
 					if ($mimefilename_list[$i]) $filename_list[$i] = $mimefilename_list[$i];
 					$out.= "X-attachments: $filename_list[$i]".$this->eol;
-
-					//if ($mimedone!=2 && $this->atleastoneimage)
-					//{
-					//						$out.= "--" . $this->mime_boundary . $this->eol;
-					//						$out.= "Content-Type: multipart/related; boundary=\"".$this->related_boundary."\"".$this->eol;
-					//						$mimedone=2;
-					//					}
 				}
 			}
 		}
 
-		//$out.= $this->eol;
 		dol_syslog("CMailFile::write_mimeheaders mime_header=\n".$out, LOG_DEBUG);
 		return $out;
 	}
@@ -915,7 +881,7 @@ class CMailFile
 				{
 					// Image path in src
 					$src = preg_quote($full);
-					
+
 					// Image full path
 					$this->html_images[$i]["fullpath"] = $images_dir.'/'.$img;
 
@@ -971,8 +937,8 @@ class CMailFile
 			return 0;
 		}
 	}
-	
-	
+
+
 	function splitAddress($address)
 	{
 		if (eregi('^(.*)<(.*)>$',trim($address),$regs))
@@ -987,61 +953,60 @@ class CMailFile
 		}
 	}
 
-}
-
 
-/**
- \brief      Renvoie une adresse acceptee par le serveur SMTP
- \param      adresses		Exemple: 'John Doe <john@doe.com>' ou 'john@doe.com'
- \param		format			0=Auto, 1=emails avec <>, 2=emails sans <>
- \return	    string			Renvoi: Si format 1: '<john@doe.com>' ou 'John Doe <john@doe.com>'
- Si format 2: 'john@doe.com'
- */
-function getValidAddress($adresses,$format)
-{
-	global $conf;
-
-	$ret='';
+	/**
+	 *	\brief      Renvoie une adresse acceptee par le serveur SMTP
+	 *	\param      adresses		Exemple: 'John Doe <john@doe.com>' ou 'john@doe.com'
+	 *	\param		format			0=Auto, 1=emails avec <>, 2=emails sans <>
+	 *	\return	    string			Renvoi: Si format 1: '<john@doe.com>' ou 'John Doe <john@doe.com>'
+	 *								Si format 2: 'john@doe.com'
+	 */
+	function getValidAddress($adresses,$format,$encode='')
+	{
+		global $conf;
 
-	$arrayaddress=split(',',$adresses);
+		$ret='';
 
-	// Boucle sur chaque composant de l'adresse
-	foreach($arrayaddress as $val)
-	{
-		if (eregi('^(.*)<(.*)>$',trim($val),$regs))
-		{
-			$name  = trim(utf8_decode($regs[1]));
-			$email = trim($regs[2]);
-		}
-		else
-		{
-			$name  = '';
-			$email = trim($val);
-		}
+		$arrayaddress=split(',',$adresses);
 
-		if ($email)
+		// Boucle sur chaque composant de l'adresse
+		foreach($arrayaddress as $val)
 		{
-			$newemail='';
-			if ($format == 2)
+			if (eregi('^(.*)<(.*)>$',trim($val),$regs))
 			{
-				$newemail=$email;
+				$name  = trim($regs[1]);
+				$email = trim($regs[2]);
 			}
-			if ($format == 1)
+			else
 			{
-				$neweamil='<'.$email.'>';
+				$name  = '';
+				$email = trim($val);
 			}
-			if ($format == 0)
+
+			if ($email)
 			{
-				if ($conf->global->MAIN_MAIL_NO_FULL_EMAIL) $newemail='<'.$email.'>';
-				elseif (! $name) $newemail='<'.$email.'>';
-				else $newemail=$name.' <'.$email.'>';
-			}
+				$newemail='';
+				if ($format == 2)
+				{
+					$newemail=$email;
+				}
+				if ($format == 1)
+				{
+					$neweamil='<'.$email.'>';
+				}
+				if ($format == 0)
+				{
+					if ($conf->global->MAIN_MAIL_NO_FULL_EMAIL) $newemail='<'.$email.'>';
+					elseif (! $name) $newemail='<'.$email.'>';
+					else $newemail=($encode?$this->encodetorfc2822($name):$name).' <'.$email.'>';
+				}
 
-			$ret=($ret ? $ret.',' : '').$newemail;
+				$ret=($ret ? $ret.',' : '').$newemail;
+			}
 		}
-	}
 
-	return $ret;
+		return $ret;
+	}
 }
 
 ?>
\ No newline at end of file