diff --git a/htdocs/product/stock/lib/replenishment.lib.php b/htdocs/product/stock/lib/replenishment.lib.php
index 21c3b4ee301e0bd41a8c3109130fb99767869514..eb11b91a56d8ffee65f9d1a2647b2f892548fbb0 100644
--- a/htdocs/product/stock/lib/replenishment.lib.php
+++ b/htdocs/product/stock/lib/replenishment.lib.php
@@ -26,9 +26,9 @@ require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.commande.class.php';
 
 /**
  * dispatched
- * 
+ *
  * @param 	int	$order_id	Id of order
- * @return	boolean			
+ * @return	boolean
  */
 function dispatched($order_id)
 {
@@ -39,7 +39,7 @@ function dispatched($order_id)
     $resql = $db->query($sql);
     $dispatched = array();
     $ordered = array();
-    if($resql && $db->num_rows($resql)) 
+    if($resql && $db->num_rows($resql))
     {
         while($res = $db->fetch_object($resql))
             $dispatched[] = $res;
@@ -57,7 +57,7 @@ function dispatched($order_id)
 
 /**
  * dispatchedOrders
- * 
+ *
  * @return Ambigous <string, multitype:NULL >
  */
 function dispatchedOrders()
@@ -84,48 +84,53 @@ function dispatchedOrders()
 
 /**
  * ordered
- * 
+ *
  * @param 	int		$product_id		Product id
  * @return	void
  */
 function ordered($product_id)
 {
-    global $db, $langs, $conf;
-    $sql = 'SELECT DISTINCT cfd.fk_product, SUM(cfd.qty) FROM';
-    $sql .= ' ' . MAIN_DB_PREFIX . 'commande_fournisseurdet as cfd ';
-    $sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'commande_fournisseur as cf';
-    $sql .= ' ON cfd.fk_commande = cf.rowid WHERE';
-    if ($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) {
-        $sql .= ' cf.fk_statut < 3';
-    } else if ($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) {
-        $sql .= ' cf.fk_statut < 6 AND cf.rowid NOT IN ' . dispatchedOrders();
-    } else {
-        $sql .= ' cf.fk_statut < 5';
-    } 
-    $sql .= ' AND cfd.fk_product = ' . $product_id;
-    $sql .= ' GROUP BY cfd.fk_product';
+	global $db, $langs, $conf;
 
-    $resql = $db->query($sql);
-    if ($resql) {
-        $exists = $db->num_rows($resql);
-        if ($exists) {
-            $obj = $db->fetch_array($resql);
-            return $obj['SUM(cfd.qty)']; //. ' ' . img_picto('','tick');
-        } else {
-            return null;//img_picto('', 'stcomm-1');
-        }
-    } else {
-        $error = $db->lasterror();
-        dol_print_error($db);
-        dol_syslog('replenish.php: ' . $error, LOG_ERR);
+	$sql = 'SELECT DISTINCT cfd.fk_product, SUM(cfd.qty) as qty FROM';
+	$sql .= ' ' . MAIN_DB_PREFIX . 'commande_fournisseurdet as cfd ';
+	$sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'commande_fournisseur as cf';
+	$sql .= ' ON cfd.fk_commande = cf.rowid WHERE';
+	if ($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) {
+		$sql .= ' cf.fk_statut < 3';
+	} else if ($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) {
+		$sql .= ' cf.fk_statut < 6 AND cf.rowid NOT IN ' . dispatchedOrders();
+	} else {
+		$sql .= ' cf.fk_statut < 5';
+	}
+	$sql .= ' AND cfd.fk_product = ' . $product_id;
+	$sql .= ' GROUP BY cfd.fk_product';
 
-        return $langs->trans('error');
-    }
+	$resql = $db->query($sql);
+	if ($resql)
+	{
+		$exists = $db->num_rows($resql);
+		if ($exists)
+		{
+			$obj = $db->fetch_array($resql);
+			return $obj['qty']; //. ' ' . img_picto('','tick');
+		} else {
+			return null; //img_picto('', 'stcomm-1');
+		}
+	}
+	else
+	{
+		$error = $db->lasterror();
+		dol_print_error($db);
+		dol_syslog('replenish.php: ' . $error, LOG_ERR);
+
+		return $langs->trans('error');
+	}
 }
 
 /**
  * getProducts
- * 
+ *
  * @param 	int		$order_id		Order id
  * @return	void
  */
diff --git a/htdocs/product/stock/replenish.php b/htdocs/product/stock/replenish.php
index 197645db2f4513b834d896692437cf5e9f72e68b..fc3591efc714749a24d0371b61becf6d1c800a15 100644
--- a/htdocs/product/stock/replenish.php
+++ b/htdocs/product/stock/replenish.php
@@ -1,6 +1,6 @@
 <?php
-/* Copyright (C) 2013   Cédric Salvador    	<csalvador@gpcsolutions.fr>
- * Copyright (C) 2013   Laurent Destaileur	<ely@users.sourceforge.net>
+/* Copyright (C) 2013      Cédric Salvador    	<csalvador@gpcsolutions.fr>
+ * Copyright (C) 2013-2014 Laurent Destaileur	<ely@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
@@ -64,6 +64,10 @@ if (!$sortorder) {
 $limit = $conf->liste_limit;
 $offset = $limit * $page ;
 
+// Force limit to non (currently solution to solve loosing selection when using pagination. No pagination on this page)
+$limit = 0;
+
+
 /*
  * Actions
  */
@@ -82,10 +86,10 @@ if ($action == 'order' && isset($_POST['valid']))
     $linecount = GETPOST('linecount', 'int');
     $box = 0;
     unset($_POST['linecount']);
-    if ($linecount > 0) 
+    if ($linecount > 0)
     {
     	$db->begin();
-    	
+
         $suppliers = array();
         for ($i = 0; $i < $linecount; $i++)
         {
@@ -158,21 +162,21 @@ if ($action == 'order' && isset($_POST['valid']))
             }
             $i++;
         }
-        
-        if (! $fail && $id) 
+
+        if (! $fail && $id)
         {
         	$db->commit();
-        	
+
             setEventMessage($langs->trans('OrderCreated'), 'mesgs');
             header('Location: replenishorders.php');
             exit;
         }
         else
         {
-        	$db->rollback();	
+        	$db->rollback();
         }
     }
-    if ($box == 0) 
+    if ($box == 0)
     {
         setEventMessage($langs->trans('SelectProductWithNotNullQty'), 'warnings');
     }
@@ -183,6 +187,8 @@ if ($action == 'order' && isset($_POST['valid']))
  * View
  */
 
+$form = new Form($db);
+
 $virtualdiffersfromphysical=0;
 if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT)
 	|| ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)
@@ -250,7 +256,7 @@ if($usevirtualstock) {
 	$sqlCommandesCli.= " AND c.entity = ".$conf->entity;
 	$sqlCommandesCli.= " AND cd.fk_product = p.rowid";
 	$sqlCommandesCli.= " AND c.fk_statut in (1,2))";
-	
+
 	$sqlCommandesFourn = "(SELECT SUM(cd.qty) as qty";
 	$sqlCommandesFourn.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd";
 	$sqlCommandesFourn.= ", ".MAIN_DB_PREFIX."commande_fournisseur as c";
@@ -258,7 +264,7 @@ if($usevirtualstock) {
 	$sqlCommandesFourn.= " AND c.entity = ".$conf->entity;
 	$sqlCommandesFourn.= " AND cd.fk_product = p.rowid";
 	$sqlCommandesFourn.= " AND c.fk_statut in (3))";
-	
+
 	$sql.= ' HAVING p.desiredstock > SUM('.$db->ifsql("s.reel IS NULL", "0", "s.reel").')';
 	$sql.= ' - '.$db->ifsql($sqlCommandesCli.' IS NULL', '0', $sqlCommandesCli).' + '.$db->ifsql($sqlCommandesFourn.' IS NULL', '0', $sqlCommandesFourn);
 } else {
@@ -362,9 +368,9 @@ $param .= '&fourn_id=' . $fourn_id . '&snom='. $snom . '&salert=' . $salert;
 $param .= '&sref=' . $sref;
 $param .= '&mode=' . $mode;
 
-// Lignes des titres
-print '<tr class="liste_titre">'.
-	'<td><input type="checkbox" onClick="toggle(this)" /></td>';
+// Lines of title
+print '<tr class="liste_titre"><td><input type="checkbox" onClick="toggle(this)" /></td>';
+
 print_liste_field_titre(
 	$langs->trans('Ref'),
 	$_SERVER["PHP_SELF"],
@@ -481,7 +487,7 @@ print '<td class="liste_titre">&nbsp;</td>'.
 $prod = new Product($db);
 
 $var = True;
-while ($i < min($num, $limit))
+while ($i < ($limit ? min($num, $limit) : $num))
 {
 	$objp = $db->fetch_object($resql);
 
@@ -503,13 +509,15 @@ while ($i < min($num, $limit))
 				if (!empty($objtp->label)) $objp->label = $objtp->label;
 			}
 		}
-		$form = new Form($db);
 		$var =! $var;
 		$prod->ref = $objp->ref;
 		$prod->id = $objp->rowid;
 		$prod->type = $objp->fk_product_type;
+
+		// Get number already ordered.
 		$ordered = ordered($prod->id);
 
+		// Defined current stock number and warning if required
 		if ($usevirtualstock)
 		{
 			// If option to increase/decrease is not on an object validation, virtual stock may differs from physical stock.
@@ -531,26 +539,29 @@ while ($i < min($num, $limit))
 			$stock = $objp->stock_physique;
 		}
 		$warning='';
-
 		if ($objp->seuil_stock_alerte && ($stock < $objp->seuil_stock_alerte))
 		{
 			$warning = img_warning($langs->trans('StockTooLow')) . ' ';
 		}
+
 		//depending on conf, use either physical stock or
 		//virtual stock to compute the stock to buy value
 		$stocktobuy = max($objp->desiredstock - $stock - $ordered, 0);
+		/*
 		$disabled = '';
-		if($ordered > 0) {
-			if($ordered + $stock >= $objp->desiredstock) {
-				$picto = img_picto('', './img/yes', '', 1);
+		if($ordered > 0)
+		{
+			if ($ordered + $stock >= $objp->desiredstock)
+			{
+				$picto = img_picto('', 'ok', '');
 				$disabled = 'disabled="disabled"';
 			}
 			else {
-				$picto = img_picto('', './img/no', '', 1);
+				$picto = img_picto($langs->trans("NotEnough"), 'warning', '');
 			}
 		} else {
-			$picto = img_picto('', './img/no', '', 1);
-		}
+			$picto = img_picto('', 'info', '');
+		}*/
 
 		print '<tr '.$bc[$var].'>';
 
@@ -558,13 +569,12 @@ while ($i < min($num, $limit))
 		//print '<td><input type="checkbox" class="check" name="' . $i . '"' . $disabled . '></td>';
 		print '<td><input type="checkbox" class="check" name="'.$i.'"></td>';
 
-		print '<td class="nowrap">'.
-			$prod->getNomUrl(1, '', 16).
-			'</td>'.
-			'<td>' . $objp->label . '</td>'.
-			'<input type="hidden" name="desc' . $i . '" value="' . $objp->label . '" >';
+		print '<td class="nowrap">'.$prod->getNomUrl(1, '', 16).'</td>';
+
+		print '<td>' . $objp->label . '<input type="hidden" name="desc' . $i . '" value="' . $objp->label . '" ></td>';
 
-		if (!empty($conf->service->enabled) && $type == 1) {
+		if (!empty($conf->service->enabled) && $type == 1)
+		{
 			if (preg_match('/([0-9]+)y/i', $objp->duration, $regs)) {
 				$duration =  $regs[1] . ' ' . $langs->trans('DurationYear');
 			} elseif (preg_match('/([0-9]+)m/i', $objp->duration, $regs)) {
@@ -574,19 +584,17 @@ while ($i < min($num, $limit))
 			} else {
 				$duration = $objp->duration;
 			}
-			print '<td align="center">'.
-				$duration.
-				'</td>';
+			print '<td align="center">'.$duration.'</td>';
 		}
 
-		print '<td align="right">' . $objp->desiredstock . '</td>'.
-			'<td align="right">'.
-			$warning . $stock.
-			'</td>'.
-			'<td align="right">'.
-			'<a href="replenishorders.php?sproduct=' . $prod->id . '">'.
-			$ordered . '</a> ' . $picto.
-			'</td>';
+		// Desired stock
+		print '<td align="right">' . $objp->desiredstock . '</td>';
+
+		// Current stock
+		print '<td align="right">'. $warning . $stock. '</td>';
+
+		// Already ordered
+		print '<td align="right"><a href="replenishorders.php?sproduct=' . $prod->id . '">'. $ordered . '</a> ' . $picto. '</td>';
 
 		// To order
 		//print '<td align="right"><input type="text" name="tobuy'.$i.'" value="'.$stocktobuy.'" '.$disabled.'></td>';