diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php
index 6b53fea0347b4e7a29addfb0561411a45e3eb7d3..7ebe18358c643b35738c1a2fa6ce9d9f61a6db65 100644
--- a/htdocs/product/class/product.class.php
+++ b/htdocs/product/class/product.class.php
@@ -876,10 +876,26 @@ class Product extends CommonObject
                 // End call triggers
 			}
 
-   			// Delete all child tables
+			// Delete from product_batch on product delete	
 			if (! $error)
 			{
-			    $elements = array('product_fournisseur_price','product_price','product_lang','categorie_product','product_stock','product_customer_price','product_batch');
+				$sql = "DELETE FROM ".MAIN_DB_PREFIX.'product_batch';
+				$sql.= " WHERE fk_product_stock IN (";
+				$sql.= "SELECT rowid FROM ".MAIN_DB_PREFIX.'product_stock';
+				$sql.= " WHERE fk_product = ".$id.")";
+				dol_syslog(get_class($this).'::delete', LOG_DEBUG);
+				$result = $this->db->query($sql);
+				if (! $result)
+				{
+					$error++;
+					$this->errors[] = $this->db->lasterror();
+				}
+			}
+			
+			// Delete all child tables
+			if (! $error)
+			{
+			    $elements = array('product_fournisseur_price','product_price','product_lang','categorie_product','product_stock','product_customer_price');  // product_batch done before
     			foreach($elements as $table)
     			{
     				if (! $error)