diff --git a/htdocs/projet/contact.php b/htdocs/projet/contact.php
index f4815c936f98f159866544a802d40b57545a0fea..f359f789c3feef5ae60a440cfa830864330b366d 100644
--- a/htdocs/projet/contact.php
+++ b/htdocs/projet/contact.php
@@ -41,9 +41,10 @@ $mine   = GETPOST('mode')=='mine' ? 1 : 0;
 //if (! $user->rights->projet->all->lire) $mine=1;	// Special for projects
 
 $object = new Project($db);
-if ($ref)
+if ($id > 0 || ! empty($ref))
 {
-    $object->fetch(0,$ref);
+    $object->fetch($id,$ref);
+    $object->fetch_thirdparty();
     $id=$object->id;
 }
 
@@ -140,82 +141,73 @@ $userstatic=new User($db);
 
 if ($id > 0 || ! empty($ref))
 {
-	if ( $object->fetch($id,$ref) > 0)
+	// To verify role of users
+	//$userAccess = $object->restrictedProjectArea($user,'read');
+	$userWrite  = $object->restrictedProjectArea($user,'write');
+	//$userDelete = $object->restrictedProjectArea($user,'delete');
+	//print "userAccess=".$userAccess." userWrite=".$userWrite." userDelete=".$userDelete;
+
+	$head = project_prepare_head($object);
+	dol_fiche_head($head, 'contact', $langs->trans("Project"), 0, ($object->public?'projectpub':'project'));
+
+
+	/*
+	 *   Projet synthese pour rappel
+	*/
+	print '<table class="border" width="100%">';
+
+	$linkback = '<a href="'.DOL_URL_ROOT.'/projet/liste.php">'.$langs->trans("BackToList").'</a>';
+
+	// Ref
+	print '<tr><td width="30%">'.$langs->trans('Ref').'</td><td colspan="3">';
+	// Define a complementary filter for search of next/prev ref.
+	if (! $user->rights->projet->all->lire)
 	{
-		if ($object->societe->id > 0)  $result=$object->societe->fetch($object->societe->id);
-
-		// To verify role of users
-		//$userAccess = $object->restrictedProjectArea($user,'read');
-		$userWrite  = $object->restrictedProjectArea($user,'write');
-		//$userDelete = $object->restrictedProjectArea($user,'delete');
-		//print "userAccess=".$userAccess." userWrite=".$userWrite." userDelete=".$userDelete;
-
-		$head = project_prepare_head($object);
-		dol_fiche_head($head, 'contact', $langs->trans("Project"), 0, ($object->public?'projectpub':'project'));
-
-
-		/*
-		 *   Projet synthese pour rappel
-		 */
-		print '<table class="border" width="100%">';
-
-		$linkback = '<a href="'.DOL_URL_ROOT.'/projet/liste.php">'.$langs->trans("BackToList").'</a>';
-
-		// Ref
-		print '<tr><td width="30%">'.$langs->trans('Ref').'</td><td colspan="3">';
-		// Define a complementary filter for search of next/prev ref.
-        if (! $user->rights->projet->all->lire)
-        {
-            $objectsListId = $object->getProjectsAuthorizedForUser($user,$mine,0);
-            $object->next_prev_filter=" rowid in (".(count($objectsListId)?join(',',array_keys($objectsListId)):'0').")";
-        }
-		print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', '');
-		print '</td></tr>';
-
-		// Label
-		print '<tr><td>'.$langs->trans("Label").'</td><td>'.$object->title.'</td></tr>';
-
-		// Customer
-		print "<tr><td>".$langs->trans("ThirdParty")."</td>";
-		print '<td colspan="3">';
-		if ($object->societe->id > 0) print $object->societe->getNomUrl(1);
-		else print '&nbsp;';
-		print '</td></tr>';
-
-		// Visibility
-		print '<tr><td>'.$langs->trans("Visibility").'</td><td>';
-		if ($object->public) print $langs->trans('SharedProject');
-		else print $langs->trans('PrivateProject');
-		print '</td></tr>';
-
-		// Statut
-		print '<tr><td>'.$langs->trans("Status").'</td><td>'.$object->getLibStatut(4).'</td></tr>';
-
-	   	// Date start
-		print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
-		print dol_print_date($object->date_start,'day');
-		print '</td></tr>';
-
-		// Date end
-		print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
-		print dol_print_date($object->date_end,'day');
-		print '</td></tr>';
-
-		print "</table>";
-
-		print '</div>';
-
-		// Contacts lines (modules that overwrite templates must declare this into descriptor)
-		$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
-		foreach($dirtpls as $reldir)
-		{
-			$res=@include dol_buildpath($reldir.'/contacts.tpl.php');
-			if ($res) break;
-		}
+		$objectsListId = $object->getProjectsAuthorizedForUser($user,$mine,0);
+		$object->next_prev_filter=" rowid in (".(count($objectsListId)?join(',',array_keys($objectsListId)):'0').")";
 	}
-	else
+	print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', '');
+	print '</td></tr>';
+
+	// Label
+	print '<tr><td>'.$langs->trans("Label").'</td><td>'.$object->title.'</td></tr>';
+
+	// Customer
+	print "<tr><td>".$langs->trans("ThirdParty")."</td>";
+	print '<td colspan="3">';
+	if ($object->thirdparty->id > 0) print $object->thirdparty->getNomUrl(1);
+	else print '&nbsp;';
+	print '</td></tr>';
+
+	// Visibility
+	print '<tr><td>'.$langs->trans("Visibility").'</td><td>';
+	if ($object->public) print $langs->trans('SharedProject');
+	else print $langs->trans('PrivateProject');
+	print '</td></tr>';
+
+	// Statut
+	print '<tr><td>'.$langs->trans("Status").'</td><td>'.$object->getLibStatut(4).'</td></tr>';
+
+	// Date start
+	print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
+	print dol_print_date($object->date_start,'day');
+	print '</td></tr>';
+
+	// Date end
+	print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
+	print dol_print_date($object->date_end,'day');
+	print '</td></tr>';
+
+	print "</table>";
+
+	print '</div>';
+
+	// Contacts lines (modules that overwrite templates must declare this into descriptor)
+	$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
+	foreach($dirtpls as $reldir)
 	{
-		print "ErrorRecordNotFound";
+		$res=@include dol_buildpath($reldir.'/contacts.tpl.php');
+		if ($res) break;
 	}
 }
 
diff --git a/htdocs/projet/document.php b/htdocs/projet/document.php
index d40682d7ce684355c18723cf4768d83d0162a57a..611fc314481b0c35a5f9108770dc474aa31524c5 100644
--- a/htdocs/projet/document.php
+++ b/htdocs/projet/document.php
@@ -46,9 +46,9 @@ if ($user->societe_id > 0) $socid=$user->societe_id;
 $result=restrictedArea($user,'projet',$id,'');
 
 $object = new Project($db);
-$object->fetch($id,$ref);
-if ($object->id > 0)
+if ($id > 0 || ! empty($ref))
 {
+	$object->fetch($id,$ref);
 	$object->fetch_thirdparty();
 	$upload_dir = $conf->projet->dir_output . "/" . dol_sanitizeFileName($object->ref);
 }
@@ -85,8 +85,6 @@ if ($object->id > 0)
 {
 	$upload_dir = $conf->projet->dir_output.'/'.dol_sanitizeFileName($object->ref);
 
-	if ($object->societe->id > 0)  $result=$object->societe->fetch($object->societe->id);
-
     // To verify role of users
     //$userAccess = $object->restrictedProjectArea($user,'read');
     $userWrite  = $object->restrictedProjectArea($user,'write');
@@ -124,7 +122,7 @@ if ($object->id > 0)
 
 	// Company
 	print '<tr><td>'.$langs->trans("ThirdParty").'</td><td>';
-	if (! empty($object->societe->id)) print $object->societe->getNomUrl(1);
+	if (! empty($object->thirdparty->id)) print $object->thirdparty->getNomUrl(1);
 	else print '&nbsp;';
 	print '</td></tr>';
 
diff --git a/htdocs/projet/element.php b/htdocs/projet/element.php
index abdf6f81b5b047e8fc28ea44aff0c89053a8138c..b5a1d089c9629804d19a74b17501d4c46ebb30c5 100644
--- a/htdocs/projet/element.php
+++ b/htdocs/projet/element.php
@@ -61,12 +61,17 @@ $mine = $_REQUEST['mode']=='mine' ? 1 : 0;
 //if (! $user->rights->projet->all->lire) $mine=1;	// Special for projects
 
 $project = new Project($db);
-if ($ref)
+if ($id > 0 || ! empty($ref))
 {
-    $project->fetch(0,$ref);
+    $project->fetch($id,$ref);
+    $project->fetch_thirdparty();
     $projectid=$project->id;
-}else {
+}
+else
+{
 	$project->fetch($projectid);
+    $project->fetch_thirdparty();
+    $projectid=$project->id;
 }
 
 // Security check
@@ -87,10 +92,6 @@ $formproject=new FormProjets($db);
 
 $userstatic=new User($db);
 
-$project = new Project($db);
-$project->fetch($projectid,$ref);
-$project->fetch_thirdparty();
-
 // To verify role of users
 $userAccess = $project->restrictedProjectArea($user);
 
diff --git a/htdocs/projet/fiche.php b/htdocs/projet/fiche.php
index 0da67881a09b912efe6880ae6a80ae7aa3d4324f..1fe3d91346d4563c0effc96b67ede61b5a2842f4 100644
--- a/htdocs/projet/fiche.php
+++ b/htdocs/projet/fiche.php
@@ -49,10 +49,11 @@ $hookmanager->initHooks(array('projectcard'));
 
 $object = new Project($db);
 $extrafields = new ExtraFields($db);
-$object->fetch($id,$ref);
-if ($object->id > 0)
+if ($id > 0 || ! empty($ref))
 {
+	$object->fetch($id,$ref);
 	$object->fetch_thirdparty();
+	$id=$object->id;
 }
 
 // Security check
diff --git a/htdocs/projet/ganttview.php b/htdocs/projet/ganttview.php
index 79d302addd38ee221eaf0f86d9e8d75964a7d280..0c06c30ba5702aa8095618ca58a5a8a17aa8ce12 100644
--- a/htdocs/projet/ganttview.php
+++ b/htdocs/projet/ganttview.php
@@ -38,9 +38,10 @@ $mine = ($mode == 'mine' ? 1 : 0);
 //if (! $user->rights->projet->all->lire) $mine=1;	// Special for projects
 
 $object = new Project($db);
-if ($ref)
+if ($id > 0 || ! empty($ref))
 {
-    $object->fetch(0,$ref);
+    $object->fetch($id,$ref);
+    $object->fetch_thirdparty();
     $id=$object->id;
 }
 
@@ -69,7 +70,6 @@ $formother=new FormOther($db);
 $userstatic=new User($db);
 $companystatic=new Societe($db);
 $task = new Task($db);
-$object = new Project($db);
 
 $arrayofcss=array('/includes/jsgantt/jsgantt.css');
 
@@ -86,9 +86,6 @@ llxHeader("",$langs->trans("Tasks"),$help_url,'',0,0,$arrayofjs,$arrayofcss);
 
 if ($id > 0 || ! empty($ref))
 {
-	$object->fetch($id,$ref);
-	if ($object->societe->id > 0)  $result=$object->societe->fetch($object->societe->id);
-
 	// To verify role of users
 	//$userAccess = $object->restrictedProjectArea($user,'read');
 	$userWrite  = $object->restrictedProjectArea($user,'write');
@@ -123,7 +120,7 @@ if ($id > 0 || ! empty($ref))
     print '<tr><td>'.$langs->trans("Label").'</td><td>'.$object->title.'</td></tr>';
 
     print '<tr><td>'.$langs->trans("ThirdParty").'</td><td>';
-    if (! empty($object->societe->id)) print $object->societe->getNomUrl(1);
+    if (! empty($object->thirdparty->id)) print $object->thirdparty->getNomUrl(1);
     else print '&nbsp;';
     print '</td>';
     print '</tr>';
diff --git a/htdocs/projet/note.php b/htdocs/projet/note.php
index 493141cbe955f55af977f625cf754cb1835a9082..a086f632a3643eb43cbe6702923dc8f771fb1525 100644
--- a/htdocs/projet/note.php
+++ b/htdocs/projet/note.php
@@ -36,9 +36,10 @@ $mine = $_REQUEST['mode']=='mine' ? 1 : 0;
 //if (! $user->rights->projet->all->lire) $mine=1;	// Special for projects
 
 $object = new Project($db);
-if ($ref)
+if ($id > 0 || ! empty($ref))
 {
-    $object->fetch(0,$ref);
+    $object->fetch($id,$ref);
+    $object->fetch_thirdparty();
     $id=$object->id;
 }
 
@@ -66,77 +67,71 @@ llxHeader("",$langs->trans("Project"),$help_url);
 
 $form = new Form($db);
 $userstatic=new User($db);
-$object = new Project($db);
 
 $now=dol_now();
 
 if ($id > 0 || ! empty($ref))
 {
-	if ($object->fetch($id, $ref))
-	{
-		if ($object->societe->id > 0)  $result=$object->societe->fetch($object->societe->id);
-
-        // To verify role of users
-        //$userAccess = $object->restrictedProjectArea($user,'read');
-        $userWrite  = $object->restrictedProjectArea($user,'write');
-        //$userDelete = $object->restrictedProjectArea($user,'delete');
-        //print "userAccess=".$userAccess." userWrite=".$userWrite." userDelete=".$userDelete;
+	// To verify role of users
+	//$userAccess = $object->restrictedProjectArea($user,'read');
+	$userWrite  = $object->restrictedProjectArea($user,'write');
+	//$userDelete = $object->restrictedProjectArea($user,'delete');
+	//print "userAccess=".$userAccess." userWrite=".$userWrite." userDelete=".$userDelete;
 
-		$head = project_prepare_head($object);
-		dol_fiche_head($head, 'notes', $langs->trans('Project'), 0, ($object->public?'projectpub':'project'));
+	$head = project_prepare_head($object);
+	dol_fiche_head($head, 'notes', $langs->trans('Project'), 0, ($object->public?'projectpub':'project'));
 
-		print '<table class="border" width="100%">';
+	print '<table class="border" width="100%">';
 
-		$linkback = '<a href="'.DOL_URL_ROOT.'/projet/liste.php">'.$langs->trans("BackToList").'</a>';
+	$linkback = '<a href="'.DOL_URL_ROOT.'/projet/liste.php">'.$langs->trans("BackToList").'</a>';
 
-		// Ref
-		print '<tr><td width="30%">'.$langs->trans("Ref").'</td><td>';
-		// Define a complementary filter for search of next/prev ref.
-	    if (! $user->rights->projet->all->lire)
-        {
-            $projectsListId = $object->getProjectsAuthorizedForUser($user,$mine,0);
-            $object->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")";
-        }
-		print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref');
-		print '</td></tr>';
+	// Ref
+	print '<tr><td width="30%">'.$langs->trans("Ref").'</td><td>';
+	// Define a complementary filter for search of next/prev ref.
+	if (! $user->rights->projet->all->lire)
+	{
+		$projectsListId = $object->getProjectsAuthorizedForUser($user,$mine,0);
+		$object->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")";
+	}
+	print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref');
+	print '</td></tr>';
 
-		// Label
-		print '<tr><td>'.$langs->trans("Label").'</td><td>'.$object->title.'</td></tr>';
+	// Label
+	print '<tr><td>'.$langs->trans("Label").'</td><td>'.$object->title.'</td></tr>';
 
-		// Third party
-		print '<tr><td>'.$langs->trans("ThirdParty").'</td><td>';
-		if ($object->societe->id > 0) print $object->societe->getNomUrl(1);
-		else print'&nbsp;';
-		print '</td></tr>';
+	// Third party
+	print '<tr><td>'.$langs->trans("ThirdParty").'</td><td>';
+	if ($object->thirdparty->id > 0) print $object->thirdparty->getNomUrl(1);
+	else print'&nbsp;';
+	print '</td></tr>';
 
-		// Visibility
-		print '<tr><td>'.$langs->trans("Visibility").'</td><td>';
-		if ($object->public) print $langs->trans('SharedProject');
-		else print $langs->trans('PrivateProject');
-		print '</td></tr>';
+	// Visibility
+	print '<tr><td>'.$langs->trans("Visibility").'</td><td>';
+	if ($object->public) print $langs->trans('SharedProject');
+	else print $langs->trans('PrivateProject');
+	print '</td></tr>';
 
-		// Statut
-		print '<tr><td>'.$langs->trans("Status").'</td><td>'.$object->getLibStatut(4).'</td></tr>';
+	// Statut
+	print '<tr><td>'.$langs->trans("Status").'</td><td>'.$object->getLibStatut(4).'</td></tr>';
 
-	   	// Date start
-		print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
-		print dol_print_date($object->date_start,'day');
-		print '</td></tr>';
+	// Date start
+	print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
+	print dol_print_date($object->date_start,'day');
+	print '</td></tr>';
 
-		// Date end
-		print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
-		print dol_print_date($object->date_end,'day');
-		print '</td></tr>';
+	// Date end
+	print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
+	print dol_print_date($object->date_end,'day');
+	print '</td></tr>';
 
-		print "</table>";
+	print "</table>";
 
-		print '<br>';
+	print '<br>';
 
-		$colwidth=30;
-		include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php';
+	$colwidth=30;
+	include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php';
 
-		dol_fiche_end();;
-	}
+	dol_fiche_end();;
 }
 
 llxFooter();
diff --git a/htdocs/projet/tasks.php b/htdocs/projet/tasks.php
index f72b8c6963d4a0bea1f0c6cdaa842a3eab08c61b..994779fcac96629647a4c11391f9f952cbb99f34 100644
--- a/htdocs/projet/tasks.php
+++ b/htdocs/projet/tasks.php
@@ -47,7 +47,7 @@ $object = new Project($db);
 $taskstatic = new Task($db);
 $extrafields_project = new ExtraFields($db);
 $extrafields_task = new ExtraFields($db);
-if ($id > 0 || $ref)
+if ($id > 0 || ! empty($ref))
 {
 	$object->fetch($id,$ref);
 	$id=$object->id;
@@ -130,8 +130,8 @@ if ($action == 'createtask' && $user->rights->projet->creer)
 			if ($taskid > 0)
 			{
 				$result = $task->add_contact($_POST["userid"], 'TASKEXECUTIVE', 'internal');
-			} 
-			else 
+			}
+			else
 			{
 			    setEventMessage($task->error,'errors');
 			    setEventMessage($task->errors,'errors');
@@ -183,7 +183,7 @@ llxHeader("",$langs->trans("Tasks"),$help_url);
 if ($id > 0 || ! empty($ref))
 {
 	$object->fetch($id, $ref);
-	if ($object->societe->id > 0)  $result=$object->societe->fetch($object->societe->id);
+	$object->fetch_thirdparty();
 	$res=$object->fetch_optionals($object->id,$extralabels_projet);
 
 
@@ -198,7 +198,7 @@ if ($id > 0 || ! empty($ref))
 
 	$head=project_prepare_head($object);
 	dol_fiche_head($head, $tab, $langs->trans("Project"),0,($object->public?'projectpub':'project'));
-	
+
 	$param=($mode=='mine'?'&mode=mine':'');
 
 	print '<table class="border" width="100%">';
@@ -221,7 +221,7 @@ if ($id > 0 || ! empty($ref))
 	print '<tr><td>'.$langs->trans("Label").'</td><td>'.$object->title.'</td></tr>';
 
 	print '<tr><td>'.$langs->trans("ThirdParty").'</td><td>';
-	if (! empty($object->societe->id)) print $object->societe->getNomUrl(1);
+	if (! empty($object->thirdparty->id)) print $object->thirdparty->getNomUrl(1);
 	else print '&nbsp;';
 	print '</td>';
 	print '</tr>';
@@ -259,7 +259,7 @@ if ($id > 0 || ! empty($ref))
 }
 
 
-if ($action == 'create' && $user->rights->projet->creer && (empty($object->societe->id) || $userWrite > 0))
+if ($action == 'create' && $user->rights->projet->creer && (empty($object->thirdparty->id) || $userWrite > 0))
 {
 	if ($id > 0 || ! empty($ref)) print '<br>';