diff --git a/ChangeLog b/ChangeLog
index b8e4affd67dc74758708c6fa0fcfad24dcefeb8c..cf059c60b7a8be3cae5218d10676e127bd0ff699 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -42,6 +42,7 @@ For users:
 - New: Can select thirdparties into emailing targets, even if module category is not enabled.
 - New: [ task #498 ] Improvement of the block to add products/services lines.
 - New: ECM autodir works also for files joined to products and services.
+- New: Add a selection module for emailing to enter a recipient from gui.
 New experimental modules:
 - New: Add margin and commissions management module.
 - New: Add holiday module.
diff --git a/htdocs/core/modules/mailings/peche.modules.php b/htdocs/core/modules/mailings/xinputfile.modules.php
similarity index 90%
rename from htdocs/core/modules/mailings/peche.modules.php
rename to htdocs/core/modules/mailings/xinputfile.modules.php
index 5ae8e2c8bb138d9e85848ae5ad2ce88b5f09348d..bd693d324ee9733950051c3ee118d8eb09d64816 100644
--- a/htdocs/core/modules/mailings/peche.modules.php
+++ b/htdocs/core/modules/mailings/xinputfile.modules.php
@@ -1,5 +1,5 @@
 <?php
-/* Copyright (C) 2005-2009 Laurent Destailleur <eldy@users.sourceforge.net>
+/* Copyright (C) 2005-2012 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
@@ -17,24 +17,23 @@
  */
 
 /**
- *	\file       htdocs/core/modules/mailings/peche.modules.php
+ *	\file       htdocs/core/modules/mailings/xinputfile.modules.php
  *	\ingroup    mailing
- *	\brief      File of class to offer a selector of emailing targets with Rule 'Peche'.
+ *	\brief      File of class to offer a selector of emailing targets with Rule 'xinputfile'.
  */
 include_once DOL_DOCUMENT_ROOT.'/core/modules/mailings/modules_mailings.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
 
 
 /**
- *	\class      mailing_peche
- *	\brief      Class to offer a selector of emailing targets with Rule 'Peche'.
+ *	Class to offer a selector of emailing targets with Rule 'xinputfile'.
  */
-class mailing_peche extends MailingTargets
+class mailing_xinputfile extends MailingTargets
 {
 	var $name='EmailsFromFile';              // Identifiant du module mailing
 	var $desc='EMails issus d\'un fichier';  // Libelle utilise si aucune traduction pour MailingModuleDescXXX ou XXX=name trouv�e
 	var $require_module=array();             // Module mailing actif si modules require_module actifs
-	var $require_admin=1;                    // Module mailing actif pour user admin ou non
+	var $require_admin=0;                    // Module mailing actif pour user admin ou non
 	var $picto='generic';
 
 	var $db;
@@ -69,11 +68,12 @@ class mailing_peche extends MailingTargets
 	}
 
 
-	/*
-	 *		\brief		Return here number of distinct emails returned by your selector.
-	 *					For example if this selector is used to extract 500 different
-	 *					emails from a text file, this function must return 500.
-	 *		\return		int			'' means NA
+	/**
+	 *	Return here number of distinct emails returned by your selector.
+	 *	For example if this selector is used to extract 500 different
+	 *	emails from a text file, this function must return 500.
+	 *
+	 *	@return		int			'' means NA
 	 */
 	function getNbOfRecipients()
 	{
diff --git a/htdocs/core/modules/mailings/xinputuser.modules.php b/htdocs/core/modules/mailings/xinputuser.modules.php
new file mode 100644
index 0000000000000000000000000000000000000000..20462806bcb711b1eb0061813d242a87dadce35c
--- /dev/null
+++ b/htdocs/core/modules/mailings/xinputuser.modules.php
@@ -0,0 +1,164 @@
+<?php
+/* Copyright (C) 2005-2012 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * or see http://www.gnu.org/
+ */
+
+/**
+ *	\file       htdocs/core/modules/mailings/xinputuser.modules.php
+ *	\ingroup    mailing
+ *	\brief      File of class to offer a selector of emailing targets with Rule 'xinputuser'.
+ */
+include_once DOL_DOCUMENT_ROOT.'/core/modules/mailings/modules_mailings.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
+
+
+/**
+ *	Class to offer a selector of emailing targets with Rule 'xinputuser'.
+ */
+class mailing_xinputuser extends MailingTargets
+{
+	var $name='EmailsFromUser';              // Identifiant du module mailing
+	var $desc='EMails input by user';        // Libelle utilise si aucune traduction pour MailingModuleDescXXX ou XXX=name trouv�e
+	var $require_module=array();            // Module mailing actif si modules require_module actifs
+	var $require_admin=0;                    // Module mailing actif pour user admin ou non
+	var $picto='generic';
+
+	var $db;
+
+
+	/**
+	 *	Constructor
+	 *
+	 *  @param		DoliDB		$db      Database handler
+	 */
+	function __construct($db)
+	{
+		$this->db=$db;
+	}
+
+
+    /**
+	 *	On the main mailing area, there is a box with statistics.
+	 *	If you want to add a line in this report you must provide an
+	 *	array of SQL request that returns two field:
+	 *	One called "label", One called "nb".
+	 *
+	 *	@return		array		Array with SQL requests
+	 */
+	function getSqlArrayForStats()
+	{
+		global $langs;
+		$langs->load("users");
+
+		$statssql=array();
+		return $statssql;
+	}
+
+
+	/**
+	 *	Return here number of distinct emails returned by your selector.
+	 *	For example if this selector is used to extract 500 different
+	 *	emails from a text file, this function must return 500.
+	 *
+	 *	@return		int			'' means NA
+	 */
+	function getNbOfRecipients()
+	{
+		return '';
+	}
+
+
+	/**
+	 *  Renvoie url lien vers fiche de la source du destinataire du mailing
+	 *
+     *  @param	int		$id		ID
+	 *  @return string      	Url lien
+	 */
+	function url($id)
+	{
+		return '';
+	}
+
+
+	/**
+	 *   Affiche formulaire de filtre qui apparait dans page de selection des destinataires de mailings
+	 *
+	 *   @return     string      Retourne zone select
+	 */
+	function formFilter()
+	{
+		global $langs;
+
+		$s='';
+		$s.='<input type="text" name="xinputuser" class="flat" size="40">';
+		return $s;
+	}
+
+	/**
+	 *  Ajoute destinataires dans table des cibles
+	 *
+	 *  @param	int		$mailing_id    	Id of emailing
+	 *  @param	array	$filtersarray   Requete sql de selection des destinataires
+	 *  @return int           			< 0 si erreur, nb ajout si ok
+	 */
+	function add_to_target($mailing_id,$filtersarray=array())
+	{
+		global $conf,$langs,$_FILES;
+
+		require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
+
+		$tmparray=explode(';',GETPOST('xinputuser'));
+		$email=$tmparray[0];
+		$lastname=$tmparray[1];
+		$firstname=$tmparray[2];
+		$other=$tmparray[3];
+
+		$cibles=array();
+        if (! empty($email))
+        {
+			if (isValidEMail($email))
+			{
+				$cibles[] = array(
+           			'email' => $email,
+           			'name' => $name,
+           			'firstname' => $firstname,
+					'other' => $other,
+                    'source_url' => '',
+                    'source_id' => '',
+                    'source_type' => 'file'
+				);
+
+				return parent::add_to_target($mailing_id, $cibles);
+			}
+			else
+			{
+				$langs->load("errors");
+				$this->error = $langs->trans("ErrorBadEMail",$email);
+				return -1;
+			}
+		}
+		else
+		{
+		   	$langs->load("errors");
+		   	$this->error = $langs->trans("ErrorBadEmail",$email);
+			return -1;
+		}
+
+	}
+
+}
+
+?>
diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php
index eb4658bf5aa5083ad5454a693861aa8b25c42a8e..c5eb33de6d44864588aaae1f3b93148206d0178e 100644
--- a/htdocs/install/upgrade2.php
+++ b/htdocs/install/upgrade2.php
@@ -3407,6 +3407,7 @@ function migrate_delete_old_files($db,$langs,$conf)
     DOL_DOCUMENT_ROOT.'/core/menus/smartphone/iphone_backoffice.php',
     DOL_DOCUMENT_ROOT.'/core/menus/smartphone/iphone_frontoffice.php',
     DOL_DOCUMENT_ROOT.'/core/modules/mailings/dolibarr_services_expired.modules.php',
+    DOL_DOCUMENT_ROOT.'/core/modules/mailings/peche.modules.php',
     DOL_DOCUMENT_ROOT.'/core/modules/mailings/poire.modules.php',
     DOL_DOCUMENT_ROOT.'/core/modules/mailings/kiwi.modules.php',
     DOL_DOCUMENT_ROOT.'/core/modules/facture/pdf_crabe.modules.php',
diff --git a/htdocs/langs/en_US/mails.lang b/htdocs/langs/en_US/mails.lang
index dca09d03cd3d2214ca7957059e6bfe7deb7c7f7c..57c56785c70436d3f8782932ce6fa2209936a853 100644
--- a/htdocs/langs/en_US/mails.lang
+++ b/htdocs/langs/en_US/mails.lang
@@ -85,6 +85,7 @@ MailingModuleDescContactCompanies=Contacts of all third parties (customer, prosp
 MailingModuleDescDolibarrUsers=Dolibarr users
 MailingModuleDescFundationMembers=Foundation members with emails
 MailingModuleDescEmailsFromFile=EMails from a text file (email;lastname;firstname;other)
+MailingModuleDescEmailsFromUser=EMails from user input (email;lastname;firstname;other)
 MailingModuleDescContactsCategories=Third parties (by category)
 MailingModuleDescDolibarrContractsLinesExpired=Third parties with expired contract's lines
 MailingModuleDescContactsByCompanyCategory=Contacts of third parties (by third parties category)
diff --git a/htdocs/langs/fr_FR/mails.lang b/htdocs/langs/fr_FR/mails.lang
index ee1c26af6d7855fe027e0075a194f2bbd70eb825..078bded11d2323453d766e9697ecb31014a1021c 100644
--- a/htdocs/langs/fr_FR/mails.lang
+++ b/htdocs/langs/fr_FR/mails.lang
@@ -85,6 +85,7 @@ MailingModuleDescContactCompanies=Contacts de tiers (prospects, clients, fournis
 MailingModuleDescDolibarrUsers=Utilisateurs de Dolibarr
 MailingModuleDescFundationMembers=Adhérents
 MailingModuleDescEmailsFromFile=EMails issus d'un fichier texte (email;nom;prenom;autre)
+MailingModuleDescEmailsFromUser=EMails saisi manuellement (email;nom;prenom;autre)
 MailingModuleDescContactsCategories=Tiers (par catégorie)
 MailingModuleDescDolibarrContractsLinesExpired=Tiers avec lignes de contrats de services expirées
 MailingModuleDescContactsByCompanyCategory=Contacts de tiers (par catégorie de tiers)