diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php
index d64a7c2710bc27f2ead6e85e8941e10b9297b343..3b815e962c0a5f0510720b706bd30de29c1c5916 100755
--- a/htdocs/core/class/commondocgenerator.class.php
+++ b/htdocs/core/class/commondocgenerator.class.php
@@ -164,14 +164,20 @@ abstract class CommonDocGenerator
         	'company_note'=>$object->note
         );
 
-        $extrafields = array();
+        // Retrieve extrafields
         if(is_array($object->array_options) && count($object->array_options))
         {
-        	foreach($object->array_options as $key=>$label)
+      		if(!class_exists('Extrafields'))
+        		require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
+        	$extrafields = new ExtraFields($this->db);
+        	$extralabels = $extrafields->fetch_name_optionals_label('company',true);
+        	//Get extrafield values
+        	$object->fetch_optionals($object->id,$extralabels);
+        	 
+        	foreach($extrafields->attribute_label as $key=>$label)
         	{
-        		$extrafields['company_'.$key] = $label;
+        		$array_thirdparty=array_merge($array_thirdparty,array('company_options_'.$key => $object->array_options['options_'.$key]));
         	}
-        	$array_thirdparty = array_merge($array_thirdparty,$extrafields);
         }
         return $array_thirdparty;
     }