diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php
index ca23640aa4a555341e290693f79f14b35a508cc5..16384ffd6a3022ebf7bbe70b9307c416c753deee 100644
--- a/htdocs/admin/dict.php
+++ b/htdocs/admin/dict.php
@@ -121,7 +121,7 @@ $tabsql[17]= "SELECT id      as rowid, code, libelle, active FROM ".MAIN_DB_PREF
 $tabsql[18]= "SELECT rowid   as rowid, code, libelle, active FROM ".MAIN_DB_PREFIX."c_shipment_mode";
 $tabsql[19]= "SELECT id      as rowid, code, libelle, active FROM ".MAIN_DB_PREFIX."c_effectif";
 $tabsql[20]= "SELECT rowid   as rowid, code, libelle, active FROM ".MAIN_DB_PREFIX."c_methode_commande_fournisseur";
-$tabsql[21]= "SELECT rowid   as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_availability";
+$tabsql[21]= "SELECT c.rowid  as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_availability AS c";
 
 // Critere de tri du dictionnaire
 $tabsqlsort[1] ="pays ASC, code ASC";
@@ -238,7 +238,7 @@ $tabrowid[17]= "id";
 $tabrowid[18]= "rowid";
 $tabrowid[19]= "id";
 $tabrowid[20]= "";
-$tabrowid[21]= "";
+$tabrowid[21]= "rowid";
 
 // Condition to show dictionnary in setup page
 $tabcond[1] = true;
diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php
index 33d14d18f8fed37c1446be99c22df6c62a87da7c..66927c9eb8f64abfb53b508ffc05230fb0af6060 100644
--- a/htdocs/comm/propal.php
+++ b/htdocs/comm/propal.php
@@ -232,14 +232,6 @@ if ($_POST['action'] == 'setaddress' && $user->rights->propale->creer)
 	if ($result < 0) dol_print_error($db,$object->error);
 }
 
-// Availability
-if ($_POST['action'] == 'setavailability' && $user->rights->propale->creer)
-{
-	$object->fetch($_GET["id"]);
-	$result=$object->set_availability($user,$_POST['fk_availability']);
-	if ($result < 0) dol_print_error($db,$object->error);
-}
-
 // Positionne ref client
 if ($_POST['action'] == 'set_ref_client' && $user->rights->propale->creer)
 {
@@ -265,7 +257,7 @@ if ($_POST['action'] == 'add' && $user->rights->propale->creer)
 			$object->ref       				= $_POST['ref'];
 			$object->datep 					= dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']);
 			$object->date_livraison 		= dol_mktime(12, 0, 0, $_POST['liv_month'], $_POST['liv_day'], $_POST['liv_year']);
-			$object->fk_availability 		= $_POST['fk_availability'];
+			$object->availability_id 		= $_POST['availability_id'];
 			$object->fk_delivery_address 	= $_POST['fk_address'];
 			$object->duree_validite			= $_POST['duree_validite'];
 			$object->cond_reglement_id 		= $_POST['cond_reglement_id'];
@@ -293,7 +285,7 @@ if ($_POST['action'] == 'add' && $user->rights->propale->creer)
 		$object->ref_client 			= $_POST['ref_client'];
 		$object->datep 					= dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']);
 		$object->date_livraison 		= dol_mktime(12, 0, 0, $_POST['liv_month'], $_POST['liv_day'], $_POST['liv_year']);
-		$object->fk_availability 		= $_POST['fk_availability'];
+		$object->availability_id 		= $_POST['availability_id'];
 		$object->fk_delivery_address 	= $_POST['fk_address'];
 		$object->duree_validite 		= $_POST['duree_validite'];
 		$object->cond_reglement_id 		= $_POST['cond_reglement_id'];
@@ -890,6 +882,14 @@ if ($_POST['action'] == 'classin')
 	$object->setProject($_POST['projectid']);
 }
 
+// Delai de livraison
+if ($_POST["action"] == 'setavailability')
+{
+	$object->fetch($_REQUEST['id']);
+	$result = $object->availability($_POST['availability_id']);
+	$_GET['id']=$_REQUEST['id'];
+}
+
 // Conditions de reglement
 if ($_POST["action"] == 'setconditions')
 {
@@ -1284,12 +1284,13 @@ if ($id > 0 || ! empty($ref))
 	print '</td><td colspan="3">';
 	if ($_GET['action'] == 'editavailability')
 	{
-		$html->form_availability($_SERVER['PHP_SELF'].'?id='.$object->id,$object->fk_availability,'fk_availability');
+		$html->form_availability($_SERVER['PHP_SELF'].'?id='.$object->id,$object->availability_id,'availability_id');
 	}
 	else
 	{
-		$html->form_availability($_SERVER['PHP_SELF'].'?id='.$object->id,$object->fk_availability,'none');
+		$html->form_availability($_SERVER['PHP_SELF'].'?id='.$object->id,$object->availability_id,'none');
 	}
+	
 	print '</td>';
 	print '</tr>';
 
diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php
index 045002f460cf18f6dcf5fe7fc39f8da74a232843..1e8cc5acf6bc15333c8d3996002f0a5389ee7ef8 100644
--- a/htdocs/comm/propal/class/propal.class.php
+++ b/htdocs/comm/propal/class/propal.class.php
@@ -95,7 +95,8 @@ class Propal extends CommonObject
 	var $fk_address;
 	var $address_type;
 	var $adresse;
-	var $fk_availability;
+	var $availability_id;
+	var $availability_code;
 
 	var $products=array();
 
@@ -642,7 +643,7 @@ class Propal extends CommonObject
 		$sql.= ", ".$this->mode_reglement_id;
 		$sql.= ", '".$this->db->escape($this->ref_client)."'";
 		$sql.= ", ".($this->date_livraison!=''?"'".$this->db->idate($this->date_livraison)."'":'null');
-		$sql.= ", ".$this->fk_availability;
+		$sql.= ", ".$this->availability_id;
 		$sql.= ", ".$conf->entity;
 		$sql.= ")";
 
@@ -905,7 +906,7 @@ class Propal extends CommonObject
 		$sql.= ", datep as dp";
 		$sql.= ", fin_validite as dfv";
 		$sql.= ", date_livraison as date_livraison";
-		$sql.= ", fk_availability";
+		$sql.= ", ca.code as availability_code, ca.label as availability";
 		$sql.= ", model_pdf, ref_client";
 		$sql.= ", note, note_public";
 		$sql.= ", fk_projet, fk_statut";
@@ -919,6 +920,7 @@ class Propal extends CommonObject
 		$sql.= " FROM ".MAIN_DB_PREFIX."c_propalst as c, ".MAIN_DB_PREFIX."propal as p";
 		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as cp ON p.fk_mode_reglement = cp.id';
 		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_payment_term as cr ON p.fk_cond_reglement = cr.rowid';
+		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_availability as ca ON p.fk_availability = ca.rowid';
 		$sql.= " WHERE p.fk_statut = c.id";
 		$sql.= " AND p.entity = ".$conf->entity;
 		if ($ref) $sql.= " AND p.ref='".$ref."'";
@@ -959,7 +961,9 @@ class Propal extends CommonObject
 				$this->datep                = $this->db->jdate($obj->dp);
 				$this->fin_validite         = $this->db->jdate($obj->dfv);
 				$this->date_livraison       = $this->db->jdate($obj->date_livraison);
-				$this->fk_availability      = $obj->fk_availability;
+				$this->availability_id      = $obj->fk_availability;
+				$this->availability_code    = $obj->availability_code;
+				$this->availability         = $obj->availability;
 				$this->fk_delivery_address  = $obj->fk_adresse_livraison;	// TODO obsolete
 				$this->fk_address  			= $obj->fk_adresse_livraison;
 
@@ -1779,6 +1783,39 @@ class Propal extends CommonObject
 			return -2;
 		}
 	}
+	
+/**
+	 *   \brief      Change le delai de livraison
+	 *   \param      availability_id      Id du nouveau delai de livraison
+	 *   \return     int                    >0 si ok, <0 si ko
+	 */
+	function availability($availability_id)
+	{
+		dol_syslog('Propale::availability('.$availability_id.')');
+		if ($this->statut >= 0)
+		{
+			$sql = 'UPDATE '.MAIN_DB_PREFIX.'propal';
+			$sql .= ' SET fk_availability = '.$availability_id;
+			$sql .= ' WHERE rowid='.$this->id;
+			if ( $this->db->query($sql) )
+			{
+				$this->availability_id = $availability_id;
+				return 1;
+			}
+			else
+			{
+				dol_syslog('Propale::availability Erreur '.$sql.' - '.$this->db->error());
+				$this->error=$this->db->error();
+				return -1;
+			}
+		}
+		else
+		{
+			dol_syslog('Propale::availability, etat propale incompatible');
+			$this->error='Etat propale incompatible '.$this->statut;
+			return -2;
+		}
+	}
 
 
 	/**
@@ -1997,6 +2034,8 @@ class Propal extends CommonObject
 		$this->cond_reglement_code = 'RECEP';
 		$this->mode_reglement_id   = 7;
 		$this->mode_reglement_code = 'CHQ';
+		$this->availability_id     = 1;
+		$this->availability_code   = 'DSP';
 		$this->note_public='This is a comment (public)';
 		$this->note='This is a comment (private)';
 		// Lines
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 462b4e00a0f94804535d63e3157abea45b0a2117..3b55841a03d80d817784afda3395671ba87367cd 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -1490,7 +1490,7 @@ class Form
         }
     }
 
-	 /**
+ /**
      *      \brief      Charge dans cache la liste des délais de livraison possibles
      *      \return     int             Nb lignes chargees, 0 si deja chargees, <0 si ko
      */
@@ -1535,7 +1535,7 @@ class Form
      *      \param      filtertype      Pour filtre
      *		\param		addempty		Ajoute entree vide
      */
-    function select_availability($selected='',$htmlname='availability',$filtertype='',$addempty=0)
+ function select_availability($selected='',$htmlname='availid',$filtertype='',$addempty=0)
     {
         global $langs,$user;
 
@@ -2139,7 +2139,7 @@ class Form
      *    	\param      htmlname    	Name of select html field
      *		\param		addempty		Ajoute entree vide
      */
-    function form_availability($page, $selected='', $htmlname='availability', $addempty=0)
+ function form_availability($page, $selected='', $htmlname='availability', $addempty=0)
     {
         global $langs;
         if ($htmlname != "none")
diff --git a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php
index cee4efe2527f32a36eb051357f41092ddee0c3aa..aa81adcd2078d3536c566aa8cd33a81268709171 100644
--- a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php
+++ b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php
@@ -441,6 +441,23 @@ class pdf_propale_azur extends ModelePDFPropales
 
 			$posy=$pdf->GetY()+4;
 		}
+		
+	// Show availability conditions
+		if ($object->type != 2 && $object->availability_code || $object->availability)
+		{
+			$pdf->SetFont('','B', $default_font_size - 2);
+			$pdf->SetXY($this->marge_gauche, $posy);
+			$titre = $outputlangs->transnoentities("AvailabilityPeriod").':';
+			$pdf->MultiCell(80, 4, $titre, 0, 'L');
+			$pdf->SetTextColor(200,0,0);
+			$pdf->SetFont('','B', $default_font_size - 2);
+			$pdf->SetXY(82, $posy);
+			$lib_availability=$outputlangs->transnoentities("AvailabilityPeriod".$object->availability_code)!=('AvailabilityPeriod'.$object->availability_code)?$outputlangs->transnoentities("AvailabilityPeriod".$object->availability_code):$outputlangs->convToOutputCharset($object->availability);
+			$lib_availability=str_replace('\n',"\n",$lib_availability);
+			$pdf->MultiCell(80, 4, $lib_availability,0,'L');
+
+			$posy=$pdf->GetY()+1;
+		}
 
 		// Show payments conditions
 		if ($object->type != 2 && ($object->cond_reglement_code || $object->cond_reglement))