diff --git a/modules/Contacts/Contacts.php b/modules/Contacts/Contacts.php
index 422c092450a3c169f0e216e50e90b905c8ef0bdb..cc29940aeb934fcf482e20e9a26501672485d516 100644
--- a/modules/Contacts/Contacts.php
+++ b/modules/Contacts/Contacts.php
@@ -787,8 +787,13 @@ class Contacts extends CRMEntity {
 				$button .= "<input title='". getTranslatedString('LBL_ADD_NEW')." ". getTranslatedString($singular_modname)."' accessyKey='F' class='crmbutton small create' onclick='fnvshobj(this,\"sendmail_cont\");sendmail(\"$this_module\",$id);' type='button' name='button' value='". getTranslatedString('LBL_ADD_NEW')." ". getTranslatedString($singular_modname)."'></td>";
 			}
 		}
+
+		$projectModuleInstance = Vtiger_Module_Model::getInstance("Project");
+		//checking the project module is active.
+		$isProjectModuleActive = $projectModuleInstance ? $projectModuleInstance->isActive() : false;
         
-        $relatedIds = array_merge(array($id), $this->getRelatedPotentialIds($id), $this->getRelatedTicketIds($id));
+		//getting related project ids only if the Project module is active
+        $relatedIds = array_merge(array($id), $this->getRelatedPotentialIds($id), $this->getRelatedTicketIds($id), $isProjectModuleActive ? $this->getRelatedProjectIds($id):array());
         $relatedIds = implode(', ', $relatedIds);
 
 		$userNameSql = getSqlForNameInDisplayFormat(array('first_name'=>
@@ -1614,6 +1619,20 @@ function get_contactsforol($user_name)
         return $relatedIds;
     }
 
+	// The function to get projectIds related to contacts.
+	function getRelatedProjectIds($id) {
+		$relatedIds = array();
+		$db = PearDatabase::getInstance();
+		$query = "SELECT DISTINCT vtiger_crmentity.crmid FROM vtiger_contactdetails LEFT JOIN vtiger_project ON
+		(vtiger_project.linktoaccountscontacts = vtiger_contactdetails.contactid) INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_project.projectid
+		WHERE vtiger_crmentity.deleted = 0 AND vtiger_contactdetails.contactid = ?";
+		$result = $db->pquery($query, array($id));
+		for ($i = 0; $i < $db->num_rows($result); $i++) {
+			$relatedIds[] = $db->query_result($result, $i, 'crmid');
+		}
+        return $relatedIds;
+    }
+
 }
 
 ?>
diff --git a/pkg/vtiger/modules/Projects/Project/modules/Project/models/Relation.php b/pkg/vtiger/modules/Projects/Project/modules/Project/models/Relation.php
index 72086687f5f3b9e25f311cbdc966e1524ab1139c..f1f2366fc53688ab1e824cfcb55f187a4e8adb42 100644
--- a/pkg/vtiger/modules/Projects/Project/modules/Project/models/Relation.php
+++ b/pkg/vtiger/modules/Projects/Project/modules/Project/models/Relation.php
@@ -21,6 +21,9 @@ class Project_Relation_Model extends Vtiger_Relation_Model{
 		$destinationModuleName = $this->getRelationModuleModel()->get('name');
 		$sourceModuleFocus = CRMEntity::getInstance($sourceModuleName);
         	$sourceModuleFocus->delete_related_module($sourceModuleName, $sourceRecordId, $destinationModuleName, $relatedRecordId);
+			$destinationModuleFocus = CRMEntity::getInstance($destinationModuleName);
+			//unlink the relationship with the related module.
+			$destinationModuleFocus->unlinkRelationship($relatedRecordId, $sourceModuleName, $sourceRecordId);
 			$sourceModuleFocus->trackUnLinkedInfo($sourceModuleName, $sourceRecordId, $destinationModuleName, $relatedRecordId);
 		return true;
 	}