diff --git a/modules/Vtiger/models/Module.php b/modules/Vtiger/models/Module.php
index ec888f683bdd5fb234f8c907ec89df6be32c8fca..50b670ff7e5483f3b79bfd02b5a2fc28444e5cba 100644
--- a/modules/Vtiger/models/Module.php
+++ b/modules/Vtiger/models/Module.php
@@ -1614,96 +1614,124 @@ class Vtiger_Module_Model extends Vtiger_Module {
 	public function getRelatedModuleRecordIds(Vtiger_Request $request, $recordIds = array(), $nonAdminCheck = false) {
 		$db = PearDatabase::getInstance();
 		$relationIds = $request->get('related_modules');
-		if(empty($relationIds))  return array();
-
+        if(empty($relationIds))  return array();
+        
 		$focus = CRMEntity::getInstance($this->getName());
 		$relatedModuleMapping = $focus->related_module_table_index;
-
-		$relationFieldMapping = array();
-		$queryParams = array($this->getId());
-		foreach($relationIds as $reltionId) {
-			array_push($queryParams,$reltionId);
-		}
-		$query = "SELECT relationfieldid,related_tabid
-					FROM vtiger_relatedlists
-					WHERE vtiger_relatedlists.tabid=? AND relation_id IN (".generateQuestionMarks($relationIds).")";
-
-
-		$relationRes = $db->pquery($query,$queryParams);
-
-		$num_rows = $db->num_rows($relationRes);
-		for($i=0 ;$i<$num_rows; $i++) {
-			$relatedTabId = $db->query_result($relationRes,$i,'related_tabid');
-			$relationfieldid = $db->query_result($relationRes,$i,'relationfieldid');
-			$relatedModuleModel = Vtiger_Module_Model::getInstance($relatedTabId);
-			$relationFieldMapping[] = array('relatedModuleName'=>$relatedModuleModel->getName(),'relationfieldid'=>$relationfieldid);
-		}
-
+        
+        $relationFieldMapping = array();
+        $queryParams = array($this->getId());
+        foreach($relationIds as $reltionId) {
+            array_push($queryParams,$reltionId);
+        }
+        $query = "SELECT relationfieldid,related_tabid
+                    FROM vtiger_relatedlists
+                    WHERE vtiger_relatedlists.tabid=? AND relation_id IN (".generateQuestionMarks($relationIds).")";
+        
+        
+        $relationRes = $db->pquery($query,$queryParams);
+        
+        $num_rows = $db->num_rows($relationRes);
+        for($i=0 ;$i<$num_rows; $i++) {
+            $relatedTabId = $db->query_result($relationRes,$i,'related_tabid');
+            $relationfieldid = $db->query_result($relationRes,$i,'relationfieldid');
+            $relatedModuleModel = Vtiger_Module_Model::getInstance($relatedTabId);
+            $relationFieldMapping[] = array('relatedModuleName'=>$relatedModuleModel->getName(),'relationfieldid'=>$relationfieldid);
+        }
+        
 		$relatedIds = array();
 		if(!empty($relationFieldMapping)) {
-			foreach ($relationFieldMapping as $mappingDetails){
+            foreach ($relationFieldMapping as $mappingDetails){
 			//for ($i=0; $i<count($relatedModules); $i++) {
 				$params = array();
 				$module = $mappingDetails['relatedModuleName'];
-				$relationFieldId = $mappingDetails['relationfieldid'];
-				$sql = "SELECT vtiger_crmentity.crmid FROM vtiger_crmentity";
-
-				if($nonAdminCheck) {
-					if(empty($relatedModuleFocus)) $relatedModuleFocus = CRMEntity::getInstance($module);
-					$user = Users_Record_Model::getCurrentUserModel();
-					$relationAccessQuery = $relatedModuleFocus->getNonAdminAccessControlQuery($module, $user);
-					$sql .= ' '.$relationAccessQuery;
-				}
-
-				if(empty($relationFieldId)){
-					$tablename = $relatedModuleMapping[$module]['table_name'];
-					$tabIndex = $relatedModuleMapping[$module]['table_index'];
-					$relIndex = $relatedModuleMapping[$module]['rel_index'];
-
-					//Fallback to vtiger_crmentityrel if both focus and relationfieldid is empty
-					if(empty($tablename)) {
-						$tablename = 'vtiger_crmentityrel';
-						$tabIndex = 'crmid';
+                $relationFieldId = $mappingDetails['relationfieldid'];
+                $sql = "SELECT vtiger_crmentity.crmid FROM vtiger_crmentity";
+                
+                
+                if(empty($relationFieldId)){
+                    $tablename = $relatedModuleMapping[$module]['table_name'];
+                    $tabIndex = $relatedModuleMapping[$module]['table_index'];
+                    $relIndex = $relatedModuleMapping[$module]['rel_index'];
+					//To show related records comments in documents, should get related document records from vtiger_senotesrel.
+					if(empty($tablename) && $this->getName() == 'Documents') {
+						$tablename = 'vtiger_senotesrel';
+						$tabIndex =	'crmid';
+						$relIndex = 'notesid';
+					//To show related Document comments in current module
+					} else if (empty($tablename) && $module == 'Documents') {
+						$tablename = 'vtiger_senotesrel';
+						$tabIndex =	'notesid';
 						$relIndex = 'crmid';
-					}
-					//END
-
-					if($tablename == 'vtiger_crmentityrel'){
-						$sql .= " INNER JOIN $tablename ON ($tablename.relcrmid = vtiger_crmentity.crmid OR $tablename.crmid = vtiger_crmentity.crmid)
-							WHERE ($tablename.crmid IN (".  generateQuestionMarks($recordIds).")) OR ($tablename.relcrmid IN (".  generateQuestionMarks($recordIds)."))";
-						foreach ($recordIds as $key => $recordId) {
+					} else if(empty($tablename)) {
+						//Fallback to vtiger_crmentityrel if both focus and relationfieldid is empty
+                        $tablename = 'vtiger_crmentityrel';
+                        $tabIndex = 'crmid';
+                        $relIndex = 'crmid';
+                    } 
+                    //END
+                    
+                    if($tablename == 'vtiger_crmentityrel'){    
+                        $sql .= ' LEFT JOIN vtiger_activity ON vtiger_activity.activityid = vtiger_crmentity.crmid ';
+                        $sql .= " INNER JOIN $tablename ON ($tablename.relcrmid = vtiger_crmentity.crmid OR $tablename.crmid = vtiger_crmentity.crmid)
+                            WHERE ($tablename.crmid IN (".  generateQuestionMarks($recordIds).")) OR ($tablename.relcrmid IN (".  generateQuestionMarks($recordIds)."))";
+							foreach ($recordIds as $key => $recordId) {
 							array_push($params, $recordId);
+							}
+                    } else if($module == "Contacts" && $this->getName() == "Potentials"){
+                        $tablename = 'vtiger_contpotentialrel';
+                        $tabIndex = 'contactid';
+                        $sql .= ' LEFT JOIN vtiger_activity ON vtiger_activity.activityid = vtiger_crmentity.crmid ';
+                        $sql .= " INNER JOIN $tablename ON $tablename.$tabIndex = vtiger_crmentity.crmid 
+                        WHERE $tablename.potentialid IN (".  generateQuestionMarks($recordIds).")";
+                    } else {
+                        if(in_array($tablename,array('vtiger_senotesrel'))){
+                             $sql .= ' LEFT JOIN vtiger_activity ON vtiger_activity.activityid = vtiger_crmentity.crmid ';
+                        }
+                        $sql .= " INNER JOIN $tablename ON $tablename.$tabIndex = vtiger_crmentity.crmid
+                            WHERE $tablename.$relIndex IN (".  generateQuestionMarks($recordIds).")";
+                    }
+                }else{
+                    $fieldModel = Vtiger_Field_Model::getInstance($relationFieldId);
+                    $relatedModuleFocus = CRMEntity::getInstance($module);
+                    $tablename = $fieldModel->get('table');
+                    $relIndex = $fieldModel->get('column');
+                    if($tablename == $relatedModuleFocus->table_name){
+						if($this->getName() == "Contacts" && $module == "Potentials"){
+							$tablename = 'vtiger_contpotentialrel';
+							$tabIndex = 'potentialid';
+							$sql .= " INNER JOIN $tablename ON $tablename.$tabIndex = vtiger_crmentity.crmid
+                            WHERE $tablename.contactid IN (".  generateQuestionMarks($recordIds).")";
+						}else{
+							$tabIndex = $relatedModuleFocus->table_index;
+							$sql .= " INNER JOIN $tablename ON $tablename.$tabIndex = vtiger_crmentity.crmid
+                            WHERE $tablename.$relIndex IN (" . generateQuestionMarks($recordIds) . ")";
 						}
-					} else {
-						$sql .= " INNER JOIN $tablename ON $tablename.$tabIndex = vtiger_crmentity.crmid
-							WHERE $tablename.$relIndex IN (".  generateQuestionMarks($recordIds).")";
-					}
-				}else{
-					$fieldModel = Vtiger_Field_Model::getInstance($relationFieldId);
-					$relatedModuleFocus = CRMEntity::getInstance($module);
-					$tablename = $fieldModel->get('table');
-					$relIndex = $fieldModel->get('column');
-					if($tablename == $relatedModuleFocus->table_name){
-						$tabIndex = $relatedModuleFocus->table_index;
-						$sql .= " INNER JOIN $tablename ON $tablename.$tabIndex = vtiger_crmentity.crmid
-							WHERE $tablename.$relIndex IN (".  generateQuestionMarks($recordIds).")";
-					}else{
-						$modulePrimaryTableName = $relatedModuleFocus->table_name;
-						$modulePrimaryTableIndex = $relatedModuleFocus->table_index;
-						$tabIndex = $relatedModuleFocus->tab_name_index[$tablename];
-						$sql .= " INNER JOIN $modulePrimaryTableName ON $modulePrimaryTableName.$modulePrimaryTableIndex = vtiger_crmentity.crmid
-							INNER JOIN $tablename ON $tablename.$tabIndex = $modulePrimaryTableName.$modulePrimaryTableIndex 
-							WHERE $tablename.$relIndex IN (".  generateQuestionMarks($recordIds).")";
-					}
-				}
-
-				$sql .=' AND vtiger_crmentity.deleted = 0';
+                        
+                    }else{
+                        $modulePrimaryTableName = $relatedModuleFocus->table_name;
+                        $modulePrimaryTableIndex = $relatedModuleFocus->table_index;
+                        $tabIndex = $relatedModuleFocus->tab_name_index[$tablename];
+                        $sql .= " INNER JOIN $modulePrimaryTableName ON $modulePrimaryTableName.$modulePrimaryTableIndex = vtiger_crmentity.crmid
+                            INNER JOIN $tablename ON $tablename.$tabIndex = $modulePrimaryTableName.$modulePrimaryTableIndex 
+                            WHERE $tablename.$relIndex IN (".  generateQuestionMarks($recordIds).")";
+                    }
+                }
+				if($nonAdminCheck) {
+					$sqlComponents = explode(" WHERE ",$sql);
+                    if(empty($relatedModuleFocus)) $relatedModuleFocus = CRMEntity::getInstance($module);
+                    $user = Users_Record_Model::getCurrentUserModel();
+                    $relationAccessQuery = $relatedModuleFocus->getNonAdminAccessControlQuery($module, $user);
+					$sql = $sqlComponents[0].$relationAccessQuery." WHERE ".$sqlComponents[1];
+                }
+				
+                $sql .=' AND vtiger_crmentity.deleted = 0';
 				foreach ($recordIds as $key => $recordId) {
 					array_push($params, $recordId);
 				}
 
 				$result1 = $db->pquery($sql, $params);
-				$num_rows = $db->num_rows($result1);
+				$num_rows = $db->num_rows($result1); //should give doc crmid.
 				for($j=0; $j<$num_rows; $j++){
 					$relatedIds[] = $db->query_result($result1, $j, 'crmid');
 				}