diff --git a/include/ListView/ListViewSession.php b/include/ListView/ListViewSession.php
index 2219ecd5d0dcb31bfd2cb85dd3e2dda4bf88e341..22830e0c7249d645fcc5fd94198d4066622d1688 100644
--- a/include/ListView/ListViewSession.php
+++ b/include/ListView/ListViewSession.php
@@ -42,7 +42,7 @@ class ListViewSession {
         self::__construct();
 	}
 
-	function getCurrentPage($currentModule,$viewId){
+	public static function getCurrentPage($currentModule,$viewId){
 		if(!empty($_SESSION['lvs'][$currentModule][$viewId]['start'])){
 			return $_SESSION['lvs'][$currentModule][$viewId]['start'];
 		}
@@ -61,7 +61,7 @@ class ListViewSession {
 		return $start;
 	}
 
-	function getListViewNavigation($currentRecordId){
+	public static function getListViewNavigation($currentRecordId){
 		global $currentModule,$current_user,$adb,$log,$list_max_entries_per_page;
 		Zend_Json::$useBuiltinEncoderDecoder = true;
 		$reUseData = false;
@@ -212,7 +212,7 @@ class ListViewSession {
 		return $start;
 	}
 
-	function setSessionQuery($currentModule,$query,$viewid){
+	public static function setSessionQuery($currentModule,$query,$viewid){
 		if(isset($_SESSION[$currentModule.'_listquery'])){
 			if($_SESSION[$currentModule.'_listquery'] != $query){
 				unset($_SESSION[$currentModule.'_DetailView_Navigation'.$viewid]);
diff --git a/include/utils/utils.php b/include/utils/utils.php
index 038f04c678aabeb425bab5fe391b561f113945c5..a5a4e1b4afc5a9cae97a69f0c1d846f638b11bab 100755
--- a/include/utils/utils.php
+++ b/include/utils/utils.php
@@ -214,7 +214,7 @@ function get_group_array($add_blank=true, $status="Active", $assigned_user="",$p
 			$query .= " WHERE groupid=?";
 			$params = array( $current_user->id);
 
-			if(count($current_user_groups) != 0) {
+			if(!empty($current_user_groups) && (count($current_user_groups) != 0)) {
 				$query .= " OR vtiger_groups.groupid in (".generateQuestionMarks($current_user_groups).")";
 				array_push($params, $current_user_groups);
 			}
@@ -222,7 +222,7 @@ function get_group_array($add_blank=true, $status="Active", $assigned_user="",$p
 			$query .= " union select vtiger_group2role.groupid as groupid,vtiger_groups.groupname as groupname from vtiger_group2role inner join vtiger_groups on vtiger_groups.groupid=vtiger_group2role.groupid inner join vtiger_role on vtiger_role.roleid=vtiger_group2role.roleid where vtiger_role.parentrole like ?";
 			array_push($params, $current_user_parent_role_seq."::%");
 
-			if(count($current_user_groups) != 0) {
+			if(!empty($current_user_groups) && (count($current_user_groups) != 0)) {
 				$query .= " union select vtiger_groups.groupid as groupid,vtiger_groups.groupname as groupname from vtiger_groups inner join vtiger_group2rs on vtiger_groups.groupid=vtiger_group2rs.groupid where vtiger_group2rs.roleandsubid in (".generateQuestionMarks($parent_roles).")";
 				array_push($params, $parent_roles);
 			}
@@ -1217,7 +1217,7 @@ function getAccessPickListValues($module)
 	$roleid = $current_user->roleid;
 	$subrole = getRoleSubordinates($roleid);
 
-	if(count($subrole)> 0)
+	if(!empty($subrole) && (count($subrole)> 0))
 {
 		$roleids = $subrole;
 		array_push($roleids, $roleid);
@@ -1238,7 +1238,7 @@ function getAccessPickListValues($module)
 
 		$keyvalue = $columnname;
 		$fieldvalues = Array();
-		if (count($roleids) > 1)
+		if (!empty($roleids) && (count($roleids) > 1))
 	{
 			$mulsel="select distinct $fieldname from vtiger_$fieldname inner join vtiger_role2picklist on vtiger_role2picklist.picklistvalueid = vtiger_$fieldname.picklist_valueid where roleid in (\"". implode($roleids,"\",\"") ."\") and picklistid in (select picklistid from vtiger_$fieldname) order by sortid asc";
 	}
@@ -1376,7 +1376,7 @@ function transferProductCurrency($old_cur, $new_cur) {
 	for($i=0;$i<$numRows;$i++) {
 		$prod_ids[] = $adb->query_result($prod_res,$i,'productid');
 	}
-	if(count($prod_ids) > 0) {
+	if(!empty($prod_ids) && (count($prod_ids) > 0)) {
 		$prod_price_list = getPricesForProducts($new_cur,$prod_ids);
 
 		for($i=0;$i<count($prod_ids);$i++) {
@@ -1402,7 +1402,7 @@ function transferPriceBookCurrency($old_cur, $new_cur) {
 		$pb_ids[] = $adb->query_result($pb_res,$i,'pricebookid');
 }
 
-	if(count($pb_ids) > 0) {
+	if(!empty($pb_ids) && (count($pb_ids) > 0)) {
 		require_once('modules/PriceBooks/PriceBooks.php');
 
 		for($i=0;$i<count($pb_ids);$i++) {
@@ -1429,7 +1429,7 @@ function transferServicesCurrency($old_cur, $new_cur) {
     for ($i = 0; $i < $numRows; $i++) {
         $ser_ids[] = $adb->query_result($ser_res, $i, 'serviceid');
     }
-    if (count($ser_ids) > 0) {
+    if (!empty($ser_ids) && (count($ser_ids) > 0)) {
         $ser_price_list = getPricesForProducts($new_cur, $ser_ids, 'Services');
         for ($i = 0; $i < count($ser_ids); $i++) {
             $service_id = $ser_ids[$i];
@@ -1597,7 +1597,7 @@ function getRelationTables($module,$secmodule){
 				}
 			}
 	}else {
-		if(method_exists($primary_obj,setRelationTables)){
+		if(method_exists($primary_obj,'setRelationTables')){
 			$reltables = $primary_obj->setRelationTables($secmodule);
 		} else {
 			$reltables = '';
@@ -2430,7 +2430,7 @@ function getRecordGroupId($record) {
  */
 function deleteRecordFromDetailViewNavigationRecords($recordId, $cvId, $moduleName) {
 	$recordNavigationInfo = Zend_Json::decode($_SESSION[$moduleName . '_DetailView_Navigation' . $cvId]);
-	if (count($recordNavigationInfo) != 0) {
+	if (!empty($recordNavigationInfo) && (count($recordNavigationInfo) != 0)) {
 		foreach ($recordNavigationInfo as $key => $recordIdList) {
 			$recordIdList = array_diff($recordIdList, array($recordId));
 			$recordNavigationInfo[$key] = $recordIdList;
diff --git a/modules/Reports/ReportRun.php b/modules/Reports/ReportRun.php
index b174e293c18968d3517cb0fa0eb93fab84a7c700..0dc0f675c63ebd64d67b21b32e31dd25e2356035 100644
--- a/modules/Reports/ReportRun.php
+++ b/modules/Reports/ReportRun.php
@@ -253,19 +253,19 @@ class ReportRunQueryPlanner {
 					}
 				}
 			}
-			if (count($newAdvFilterList[$i])) {
+			if (!empty($newAdvFilterList) && (count($newAdvFilterList[$i]))) {
 				$newAdvFilterList[$i]['condition'] = $advfilterlist[$i]['condition'];
 			}
 			if (isset($newAdvFilterList[$i]['columns'][$k - 1])) {
 				$newAdvFilterList[$i]['columns'][$k - 1]['column_condition'] = '';
 			}
-			if (count($newAdvFilterList[$i]) != 2) {
+			if (!empty($newAdvFilterList) && (count($newAdvFilterList[$i]) != 2)) {
 				unset($newAdvFilterList[$i]);
 			}
 		}
 		end($newAdvFilterList);
 		$lastConditionsGrpKey = key($newAdvFilterList);
-		if (count($newAdvFilterList[$lastConditionsGrpKey])) {
+		if (!empty($newAdvFilterList) && (count($newAdvFilterList[$lastConditionsGrpKey]))) {
 			$newAdvFilterList[$lastConditionsGrpKey]['condition'] = '';
 		}
 
diff --git a/modules/Reports/models/ListView.php b/modules/Reports/models/ListView.php
index 90fafd3fe6bf9634e1eccf8518a9f084eddde0ed..6bcfb4aef0abeabc226c08002aec6f21fb3480e4 100644
--- a/modules/Reports/models/ListView.php
+++ b/modules/Reports/models/ListView.php
@@ -17,7 +17,7 @@ class Reports_ListView_Model extends Vtiger_ListView_Model {
 	 * Function to get the list of listview links for the module
 	 * @return <Array> - Associate array of Link Type to List of Vtiger_Link_Model instances
 	 */
-	public function getListViewLinks() {
+	public function getListViewLinks($linkParams = false) {
 		$moduleModel = $this->getModule();
 		$links = Vtiger_Link_Model::getAllByType($moduleModel->getId(), array('LISTVIEWBASIC'));
 		return $links;
@@ -28,7 +28,7 @@ class Reports_ListView_Model extends Vtiger_ListView_Model {
 	 * @param <Array> $linkParams
 	 * @return <Array> - Associative array of Link type to List of  Vtiger_Link_Model instances for Mass Actions
 	 */
-	public function getListViewMassActions() {
+	public function getListViewMassActions($linkParams = false) {
 		$currentUserModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
 
 		$massActionLinks = array();
@@ -73,7 +73,8 @@ class Reports_ListView_Model extends Vtiger_ListView_Model {
 	 * Function to get the list view header
 	 * @return <Array> - List of Vtiger_Field_Model instances
 	 */
-	public function getListViewHeaders($folderId) {
+	public function getListViewHeaders() {
+            list($folderId) = func_get_args();
 		$headers = array(
 			'reportname' => array('label' => 'LBL_REPORT_NAME', 'type' => 'string'),
 			'description' => array('label' => 'LBL_DESCRIPTION', 'type' => 'string'),
diff --git a/modules/Reports/models/RecordStructure.php b/modules/Reports/models/RecordStructure.php
index fae88533010771dbec069be723084935e660248b..f40d13f5364899c9accfe590264ff15497eb8217 100644
--- a/modules/Reports/models/RecordStructure.php
+++ b/modules/Reports/models/RecordStructure.php
@@ -18,7 +18,8 @@ class Reports_RecordStructure_Model extends Vtiger_RecordStructure_Model {
 	 * Function to get the values in stuctured format
 	 * @return <array> - values in structure array('block'=>array(fieldinfo));
 	 */
-	public function getStructure($moduleName) {
+	public function getStructure() {
+            list($moduleName) = func_get_args();
 		if (!empty($this->structuredValues[$moduleName])) {
 			return $this->structuredValues[$moduleName];
 		}
diff --git a/modules/Reports/views/Detail.php b/modules/Reports/views/Detail.php
index 59acd44b06843d2f4314170704cb5f84f131e2ba..dd2cc23a4eef30dd2f32ebfc97e3a39b77b1d77a 100644
--- a/modules/Reports/views/Detail.php
+++ b/modules/Reports/views/Detail.php
@@ -41,7 +41,7 @@ class Reports_Detail_View extends Vtiger_Index_View {
 
 	const REPORT_LIMIT = 500;
 
-	function preProcess(Vtiger_Request $request) {
+	function preProcess(Vtiger_Request $request, $display=true) {
 		$viewer = $this->getViewer($request);
 		$moduleName = $request->getModule();
 		$recordId = $request->get('record');
diff --git a/modules/Settings/Currency/models/Record.php b/modules/Settings/Currency/models/Record.php
index cacc46bc68145e790fdb5a394fa94b7ed12fd9cc..74b15c6b3dc4e34498a2b1b1ceedcc803004e95c 100644
--- a/modules/Settings/Currency/models/Record.php
+++ b/modules/Settings/Currency/models/Record.php
@@ -92,7 +92,8 @@ class Settings_Currency_Record_Model extends Settings_Vtiger_Record_Model{
         return $id;
     }
 
-    public static function getInstance($id) {
+    public static function getInstance() {
+        list($id) = func_get_args();
         $db = PearDatabase::getInstance();
         if(Vtiger_Utils::isNumber($id)){
             $query = 'SELECT * FROM ' . Settings_Currency_Module_Model::tableName . ' WHERE id=?';
diff --git a/modules/Settings/Groups/models/Record.php b/modules/Settings/Groups/models/Record.php
index 8301e4a12d4c7e9c97672f6dff571c08ce518077..387fb8194ab6a8c533a72ba475c6264abf816d4d 100644
--- a/modules/Settings/Groups/models/Record.php
+++ b/modules/Settings/Groups/models/Record.php
@@ -346,20 +346,21 @@ class Settings_Groups_Record_Model extends Settings_Vtiger_Record_Model {
 	 * @param <Object> $value
 	 * @return Settings_Groups_Record_Model instance, if exists. Null otherwise
 	 */
-	public static function getInstance($value) {
-		$db = PearDatabase::getInstance();
-
-		if (Vtiger_Utils::isNumber($value)) {
-			$sql = 'SELECT * FROM vtiger_groups WHERE groupid = ?';
-		} else {
-			$sql = 'SELECT * FROM vtiger_groups WHERE groupname = ?';
-		}
-		$params = array($value);
-		$result = $db->pquery($sql, $params);
-		if ($db->num_rows($result) > 0) {
-			return self::getInstanceFromQResult($result, 0);
-		}
-		return null;
+	public static function getInstance() {
+            list($value) = func_get_args();
+            $db = PearDatabase::getInstance();
+
+            if (Vtiger_Utils::isNumber($value)) {
+                    $sql = 'SELECT * FROM vtiger_groups WHERE groupid = ?';
+            } else {
+                    $sql = 'SELECT * FROM vtiger_groups WHERE groupname = ?';
+            }
+            $params = array($value);
+            $result = $db->pquery($sql, $params);
+            if ($db->num_rows($result) > 0) {
+                    return self::getInstanceFromQResult($result, 0);
+            }
+            return null;
 	}
 	
 	/* Function to get the instance of the group by Name
diff --git a/modules/Settings/Leads/models/Field.php b/modules/Settings/Leads/models/Field.php
index fb6c0d0fa57000e92c644c187edf3cccc8a0468e..4406efd64cac1a8643af3eb3047c46f608edf819 100644
--- a/modules/Settings/Leads/models/Field.php
+++ b/modules/Settings/Leads/models/Field.php
@@ -47,7 +47,7 @@ class Settings_Leads_Field_Model extends Vtiger_Field_Model {
 	 * @param <String> $module
 	 * @return <Settings_Leads_Field_Model> field model
 	 */
-	public static function getInstance($value, $module) {
+	public static function getInstance($value, $module = false) {
 		$fieldModel = parent::getInstance($value, $module);
 		$objectProperties = get_object_vars($fieldModel);
 
diff --git a/modules/Settings/Leads/models/Module.php b/modules/Settings/Leads/models/Module.php
index f8ff555559ebb3028fb326c53a8d0d8721f682c6..6a120d1f390dc5c491975e39035f7d768ed9eb93 100644
--- a/modules/Settings/Leads/models/Module.php
+++ b/modules/Settings/Leads/models/Module.php
@@ -14,7 +14,7 @@ class Settings_Leads_Module_Model extends Vtiger_Module_Model {
 	 * Function to get fields of this model
 	 * @return <Array> list of field models <Settings_Leads_Field_Model>
 	 */
-	public function getFields() {
+	public function getFields($blockInstance=false) {
 		if (!$this->fields) {
 			$fieldModelsList = array();
 			$fieldIds = $this->getMappingSupportedFieldIdsList();
diff --git a/modules/Settings/Picklist/models/Field.php b/modules/Settings/Picklist/models/Field.php
index f7b64bd6b702fb1320bf7560e9b2737157b88028..87b9863491118494275856f543378299001b06dd 100644
--- a/modules/Settings/Picklist/models/Field.php
+++ b/modules/Settings/Picklist/models/Field.php
@@ -26,7 +26,11 @@ class Settings_Picklist_Field_Model extends Vtiger_Field_Model {
      * @param type $groupMode -- Intersection/Conjuction , intersection will give only picklist values that exist for all roles
      * @return type -- array
      */
-    public function getPicklistValues($roleIdList, $groupMode='INTERSECTION') {
+    public function getPicklistValues() {
+        list($roleIdList, $groupMode) = func_get_args();
+        if(empty($groupMode)){
+            $groupMode='INTERSECTION';
+        }
         if(!$this->isRoleBased()) {
             return parent::getPicklistValues();
         }
@@ -102,9 +106,10 @@ class Settings_Picklist_Field_Model extends Vtiger_Field_Model {
      * @param type $fieldName -- string
      * @return type -- array of values
      */
-	public function getEditablePicklistValues($fieldName){
-		$cache = Vtiger_Cache::getInstance();
-		$EditablePicklistValues = $cache->get('EditablePicklistValues', $fieldName);
+	public function getEditablePicklistValues(){
+            list($fieldName) = func_get_args();
+            $cache = Vtiger_Cache::getInstance();
+            $EditablePicklistValues = $cache->get('EditablePicklistValues', $fieldName);
         if($EditablePicklistValues) {
             return $EditablePicklistValues;
         }
diff --git a/modules/Settings/Vtiger/models/Module.php b/modules/Settings/Vtiger/models/Module.php
index 1c65dae1f676c7f9bb6d62786d2b732d822502e2..ad1cf0ae702f5e37a0e4d608c863ccf81b99f5e2 100644
--- a/modules/Settings/Vtiger/models/Module.php
+++ b/modules/Settings/Vtiger/models/Module.php
@@ -104,9 +104,10 @@ class Settings_Vtiger_Module_Model extends Vtiger_Base_Model {
 	 * Function to get the instance of Settings module model
 	 * @return Settings_Vtiger_Module_Model instance
 	 */
-	public static function getInstance($name='Settings:Vtiger') {
-		$modelClassName = Vtiger_Loader::getComponentClassName('Model', 'Module', $name);
-		return new $modelClassName();
+	public static function getInstance() {
+            $name='Settings:Vtiger';
+            $modelClassName = Vtiger_Loader::getComponentClassName('Model', 'Module', $name);
+            return new $modelClassName();
 	}
 
 	/**
diff --git a/modules/Settings/Vtiger/models/Record.php b/modules/Settings/Vtiger/models/Record.php
index 6ede503b2c5f1aa2ba2f52bf2d17e9b946bb68e3..69c099daca8e9eae6b32165fa164e08c1cdbd25d 100644
--- a/modules/Settings/Vtiger/models/Record.php
+++ b/modules/Settings/Vtiger/models/Record.php
@@ -20,7 +20,8 @@ abstract class Settings_Vtiger_Record_Model extends Vtiger_Base_Model {
 	 * Function to get the instance of Settings module model
 	 * @return Settings_Vtiger_Module_Model instance
 	 */
-	 public static function getInstance($name='Settings:Vtiger') {
+	 public static function getInstance() {
+                $name='Settings:Vtiger';
 		$modelClassName  = Vtiger_Loader::getComponentClassName('Model', 'Record', $name);
 		 return new $modelClassName();
 	 }
diff --git a/modules/Settings/Workflows/models/Record.php b/modules/Settings/Workflows/models/Record.php
index c365e8518be89a3fcaac97a8f88897c366a6e1b8..dda570b791ca30f0d91de124f20a7ff21f63a709 100644
--- a/modules/Settings/Workflows/models/Record.php
+++ b/modules/Settings/Workflows/models/Record.php
@@ -154,11 +154,12 @@ class Settings_Workflows_Record_Model extends Settings_Vtiger_Record_Model {
 		return $links;
 	}
 
-	public static function getInstance($workflowId) {
-		$db = PearDatabase::getInstance();
-		$wm = new VTWorkflowManager($db);
-		$wf = $wm->retrieve($workflowId);
-		return self::getInstanceFromWorkflowObject($wf);
+	public static function getInstance() {
+            list($workflowId) = func_get_args();
+            $db = PearDatabase::getInstance();
+            $wm = new VTWorkflowManager($db);
+            $wf = $wm->retrieve($workflowId);
+            return self::getInstanceFromWorkflowObject($wf);
 	}
 
 	public static function getCleanInstance($moduleName) {
diff --git a/modules/Settings/Workflows/models/TaskRecord.php b/modules/Settings/Workflows/models/TaskRecord.php
index ede3c4764ced7b4696bfdd9757467a43e05ff9c9..ff3e5b3cdfcb4d1ad95729a7a8d9243b8f684a91 100644
--- a/modules/Settings/Workflows/models/TaskRecord.php
+++ b/modules/Settings/Workflows/models/TaskRecord.php
@@ -95,7 +95,8 @@ class Settings_Workflows_TaskRecord_Model extends Settings_Vtiger_Record_Model {
 		return $taskModels;
 	}
 
-	public static function getInstance($taskId, $workflowModel=null) {
+	public static function getInstance() {
+                list($taskId, $workflowModel) = func_get_args();
 		$db = PearDatabase::getInstance();
 		$tm = new VTTaskManager($db);
 		$task = $tm->retrieveTask($taskId);
diff --git a/modules/Settings/Workflows/views/Edit.php b/modules/Settings/Workflows/views/Edit.php
index 13d35edbcee0c5cf7035b305bf99b5a1fce5349c..95615aa2f747eb907387d0d4f4b2622214e8f0bc 100644
--- a/modules/Settings/Workflows/views/Edit.php
+++ b/modules/Settings/Workflows/views/Edit.php
@@ -21,7 +21,7 @@ class Settings_Workflows_Edit_View extends Settings_Vtiger_Index_View {
 		}
 	}
 
-	public function preProcess(Vtiger_Request $request) {
+	public function preProcess(Vtiger_Request $request, $display=true) {
 		parent::preProcess($request);
 		$viewer = $this->getViewer($request);
 
diff --git a/modules/Settings/Workflows/views/EditAjax.php b/modules/Settings/Workflows/views/EditAjax.php
index 4c8bd7b77af7557b76120143904ee4afacdccd9d..30b472e55e9c9b4f305295f2677753c273cac960 100644
--- a/modules/Settings/Workflows/views/EditAjax.php
+++ b/modules/Settings/Workflows/views/EditAjax.php
@@ -11,7 +11,7 @@
 
 class Settings_Workflows_EditAjax_View extends Settings_Workflows_Edit_View {
 
-   public function preProcess(Vtiger_Request $request) {
+   public function preProcess(Vtiger_Request $request, $display=true) {
       return true;
    }
 
diff --git a/modules/Vtiger/views/Detail.php b/modules/Vtiger/views/Detail.php
index da6c136beecfbdb7fa4bc3946aa31834c446c231..d55d87d885e5730bbd689752810be8b943584dfb 100644
--- a/modules/Vtiger/views/Detail.php
+++ b/modules/Vtiger/views/Detail.php
@@ -378,7 +378,7 @@ class Vtiger_Detail_View extends Vtiger_Index_View {
 	 * Function shows basic detail for the record
 	 * @param <type> $request
 	 */
-	function showModuleBasicView($request) {
+	function showModuleBasicView(Vtiger_Request $request) {
 
 		$recordId = $request->get('record');
 		$moduleName = $request->getModule();
diff --git a/modules/Vtiger/views/List.php b/modules/Vtiger/views/List.php
index 6f607bf6e551ec09756e5bd4eba77874259b9e65..c889cb7c42e8ddb7ac914bba14984c1929cef1a8 100644
--- a/modules/Vtiger/views/List.php
+++ b/modules/Vtiger/views/List.php
@@ -52,14 +52,14 @@ class Vtiger_List_View extends Vtiger_Index_View {
 		if(!empty($tag)) {
 			$listViewSessionKey .='_'.$tag;
 		}
-
-		$orderParams = Vtiger_ListView_Model::getSortParamsSession($listViewSessionKey);
+                
+                $this->listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId, $listHeaders);
+		$orderParams = $this->listViewModel->getSortParamsSession($listViewSessionKey);
 
 		if(empty($listHeaders)) {
 			$listHeaders = $orderParams['list_headers'];
 		}
 
-		$this->listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId, $listHeaders);
 		$linkParams = array('MODULE'=>$moduleName, 'ACTION'=>$request->get('view'));
 		$viewer->assign('CUSTOM_VIEWS', CustomView_Record_Model::getAllByGroup($moduleName));
 		$this->viewName = $request->get('viewname');
@@ -174,18 +174,24 @@ class Vtiger_List_View extends Vtiger_Index_View {
 		$tag = $request->get('tag');
 		$requestViewName = $request->get('viewname');
 		$tagSessionKey = $moduleName.'_TAG';
+                
+                if(!$this->listViewModel) {
+			$listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId, $listHeaders);
+		} else {
+			$listViewModel = $this->listViewModel;
+		}
 
 		if(!empty($requestViewName) && empty($tag)) {
 			unset($_SESSION[$tagSessionKey]);
 		}
 
 		if(empty($tag)) {   
-			$tagSessionVal = Vtiger_ListView_Model::getSortParamsSession($tagSessionKey);
+			$tagSessionVal = $listViewModel->getSortParamsSession($tagSessionKey);
 			if(!empty($tagSessionVal)) {
 				$tag = $tagSessionVal;
 			}
 		}else{
-			Vtiger_ListView_Model::setSortParamsSession($tagSessionKey, $tag);
+			$listViewModel->setSortParamsSession($tagSessionKey, $tag);
 		}
 
                 if(empty($cvId)) {
@@ -198,15 +204,15 @@ class Vtiger_List_View extends Vtiger_Index_View {
 			$listViewSessionKey .='_'.$tag;
 		}
 
-		$orderParams = Vtiger_ListView_Model::getSortParamsSession($listViewSessionKey);
+		$orderParams = $listViewModel->getSortParamsSession($listViewSessionKey);
 		if($request->get('mode') == 'removeAlphabetSearch') {
-			Vtiger_ListView_Model::deleteParamsSession($listViewSessionKey, array('search_key', 'search_value', 'operator'));
+			$listViewModel->deleteParamsSession($listViewSessionKey, array('search_key', 'search_value', 'operator'));
 			$searchKey = '';
 			$searchValue = '';
 			$operator = '';
 		}
 		if($request->get('mode') == 'removeSorting') {
-			Vtiger_ListView_Model::deleteParamsSession($listViewSessionKey, array('orderby', 'sortorder'));
+			$listViewModel->deleteParamsSession($listViewSessionKey, array('orderby', 'sortorder'));
 			$orderBy = '';
 			$sortOrder = '';
 		}
@@ -245,7 +251,7 @@ class Vtiger_List_View extends Vtiger_Index_View {
 			if(!empty($listHeaders)) {
 				$params['list_headers'] = $listHeaders;
 			}
-			Vtiger_ListView_Model::setSortParamsSession($listViewSessionKey, $params);
+			$listViewModel->setSortParamsSession($listViewSessionKey, $params);
 		}
 		if($sortOrder == "ASC"){
 			$nextSortOrder = "DESC";
@@ -261,11 +267,6 @@ class Vtiger_List_View extends Vtiger_Index_View {
 			$pageNumber = '1';
 		}
 
-		if(!$this->listViewModel) {
-			$listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId, $listHeaders);
-		} else {
-			$listViewModel = $this->listViewModel;
-		}
 		$currentUser = Users_Record_Model::getCurrentUserModel();
 
 		$linkParams = array('MODULE'=>$moduleName, 'ACTION'=>$request->get('view'), 'CVID'=>$cvId);
diff --git a/modules/com_vtiger_workflow/VTWorkflowUtils.php b/modules/com_vtiger_workflow/VTWorkflowUtils.php
index 2448f05bdfdd59a4633cb90c3ad9db064337b1af..f671da0e226fc35ec7e82de1bc7c5736480e4152 100644
--- a/modules/com_vtiger_workflow/VTWorkflowUtils.php
+++ b/modules/com_vtiger_workflow/VTWorkflowUtils.php
@@ -119,7 +119,7 @@ class VTWorkflowUtils {
 	 * @params :: $modulename - name of the module
 	 */
 
-	function checkModuleWorkflow($modulename) {
+	public static function checkModuleWorkflow($modulename) {
 		$result = true;
 		if (in_array($modulename, array('Emails', 'Faq', 'PBXManager', 'Users')) || !getTabid($modulename)) {
 			$result = false;
diff --git a/modules/com_vtiger_workflow/tasks/VTSendNotificationTask.inc b/modules/com_vtiger_workflow/tasks/VTSendNotificationTask.inc
index 224c21fb2d0b18cd6bb49fd14a333472b0a57eb7..323cc7cc1a1dd74228853edc8647b8170ec6cc43 100644
--- a/modules/com_vtiger_workflow/tasks/VTSendNotificationTask.inc
+++ b/modules/com_vtiger_workflow/tasks/VTSendNotificationTask.inc
@@ -79,7 +79,7 @@ class VTSendNotificationTask extends VTEmailTask {
 	 * @param <Object> $entity
 	 * @return <Array> contents
 	 */
-	public function getContents($entity) {
+	public function getContents($entity, $entityCache=false) {
 		if (!$this->contents) {
 			$util = new VTWorkflowUtils();
 			$admin = $util->adminUser();
diff --git a/packages/vtiger/mandatory/ModTracker.zip b/packages/vtiger/mandatory/ModTracker.zip
index 0546f0bfd1ea4178ec4db3095023619a751eba0d..8598f3e1865a46ebea781f726dd013ca2413a045 100644
Binary files a/packages/vtiger/mandatory/ModTracker.zip and b/packages/vtiger/mandatory/ModTracker.zip differ
diff --git a/packages/vtiger/mandatory/ServiceContracts.zip b/packages/vtiger/mandatory/ServiceContracts.zip
index 6653adf62703bf5415b626ef4676da1749408257..49a5bd5e66ca5c3b00af3623ba1f00bed4cd3187 100644
Binary files a/packages/vtiger/mandatory/ServiceContracts.zip and b/packages/vtiger/mandatory/ServiceContracts.zip differ
diff --git a/packages/vtiger/optional/BrazilianLanguagePack_bz_bz.zip b/packages/vtiger/optional/BrazilianLanguagePack_bz_bz.zip
index af5eb302d82a1010cc667e0ad3ce7d39a0ff9d71..c2c545a71d8da9127017663498b9c72f7f8ec71c 100644
Binary files a/packages/vtiger/optional/BrazilianLanguagePack_bz_bz.zip and b/packages/vtiger/optional/BrazilianLanguagePack_bz_bz.zip differ
diff --git a/packages/vtiger/optional/EmailTemplates.zip b/packages/vtiger/optional/EmailTemplates.zip
index 79e2f98b4f6641defa99b658226efc74668e691b..dbc278d55c4c51e3e4d8b472707e53c6f66e70c0 100644
Binary files a/packages/vtiger/optional/EmailTemplates.zip and b/packages/vtiger/optional/EmailTemplates.zip differ
diff --git a/packages/vtiger/optional/RecycleBin.zip b/packages/vtiger/optional/RecycleBin.zip
index 7e3e466fd944223d94cf207c1a19c062dde04f6b..42de3ec1bbca4b63ff1957cbe0f7a24228941a62 100644
Binary files a/packages/vtiger/optional/RecycleBin.zip and b/packages/vtiger/optional/RecycleBin.zip differ
diff --git a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/models/ListView.php b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/models/ListView.php
index 94a8e6bcd87058d7f336a6cc2c50be2d1445106b..dda938a9c050fdbe5a7bb7d1ab3c6e865f9fe3e4 100644
--- a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/models/ListView.php
+++ b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/models/ListView.php
@@ -53,13 +53,14 @@ class EmailTemplates_ListView_Model extends Vtiger_ListView_Model {
 	 * @param <Number> $viewId - Custom View Id
 	 * @return Vtiger_ListView_Model instance
 	 */
-	public static function getInstance($moduleName, $viewId = 0) {
-		$db = PearDatabase::getInstance();
-		$modelClassName = Vtiger_Loader::getComponentClassName('Model', 'ListView', $moduleName);
-		$instance = new $modelClassName();
-
-		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
-		return $instance->set('module', $moduleModel);
+	public static function getInstance($moduleName, $viewId='0', $listHeaders = array()) {
+            list($moduleName) = func_get_args();
+            $db = PearDatabase::getInstance();
+            $modelClassName = Vtiger_Loader::getComponentClassName('Model', 'ListView', $moduleName);
+            $instance = new $modelClassName();
+
+            $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
+            return $instance->set('module', $moduleModel);
 	}
 
 	/**
diff --git a/pkg/vtiger/modules/ModTracker/modules/ModTracker/models/Field.php b/pkg/vtiger/modules/ModTracker/modules/ModTracker/models/Field.php
index 289a8a78fe2ff73bbafa30827d48b396b660d633..23177feff11cfe30a8faa00b1c590c43c83a2d57 100644
--- a/pkg/vtiger/modules/ModTracker/modules/ModTracker/models/Field.php
+++ b/pkg/vtiger/modules/ModTracker/modules/ModTracker/models/Field.php
@@ -73,7 +73,7 @@ class ModTracker_Field_Model extends Vtiger_Record_Model {
 	 * @param <type> $value
 	 * @return <String>
 	 */
-	public function getDisplayValue($value) {
+	public function getDisplayValue($value, $record=false) {
 		return $this->getFieldInstance()->getDisplayValue($value);
 	}
 
diff --git a/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/ListView.php b/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/ListView.php
index 8b8a0a11cfd6adbe607f3cbeb3f19d5996a1b1ce..e968b699bb8869e9a23915397c621724563f7a09 100644
--- a/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/ListView.php
+++ b/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/ListView.php
@@ -16,22 +16,23 @@ class RecycleBin_ListView_Model extends Vtiger_ListView_Model {
 	 * @param <Number> $viewId - Custom View Id
 	 * @return Vtiger_ListView_Model instance
 	 */
-	public static function getInstance($moduleName, $sourceModule) {
-		$db = PearDatabase::getInstance();
-		$currentUser = vglobal('current_user');
+	public static function getInstance($moduleName, $viewId='0', $listHeaders = array()) {
+            list($moduleName, $sourceModule) = func_get_args();
+            $db = PearDatabase::getInstance();
+            $currentUser = vglobal('current_user');
 
-		$modelClassName = Vtiger_Loader::getComponentClassName('Model', 'ListView', $moduleName);
-		$instance = new $modelClassName();
+            $modelClassName = Vtiger_Loader::getComponentClassName('Model', 'ListView', $moduleName);
+            $instance = new $modelClassName();
 
-		$sourceModuleModel = Vtiger_Module_Model::getInstance($sourceModule);
-		$queryGenerator = new EnhancedQueryGenerator($sourceModuleModel->get('name'), $currentUser);
-		$cvidObj = CustomView_Record_Model::getAllFilterByModule($sourceModuleModel->get('name')); 
-        $cvid = $cvidObj->getId('cvid'); 
-        $queryGenerator->initForCustomViewById($cvid);
+            $sourceModuleModel = Vtiger_Module_Model::getInstance($sourceModule);
+            $queryGenerator = new EnhancedQueryGenerator($sourceModuleModel->get('name'), $currentUser);
+            $cvidObj = CustomView_Record_Model::getAllFilterByModule($sourceModuleModel->get('name')); 
+            $cvid = $cvidObj->getId('cvid'); 
+            $queryGenerator->initForCustomViewById($cvid);
 
-		$controller = new ListViewController($db, $currentUser, $queryGenerator);
+            $controller = new ListViewController($db, $currentUser, $queryGenerator);
 
-		return $instance->set('module', $sourceModuleModel)->set('query_generator', $queryGenerator)->set('listview_controller', $controller);
+            return $instance->set('module', $sourceModuleModel)->set('query_generator', $queryGenerator)->set('listview_controller', $controller);
 	}
 
 	/**