diff --git a/include/Webservices/VtigerCRMObjectMeta.php b/include/Webservices/VtigerCRMObjectMeta.php
index 017ce1e61bae55ad28b6fd075ceac8ec918e1888..b583b2876d71599d749595ace0da51c548e341b4 100644
--- a/include/Webservices/VtigerCRMObjectMeta.php
+++ b/include/Webservices/VtigerCRMObjectMeta.php
@@ -371,7 +371,7 @@ class VtigerCRMObjectMeta extends EntityMeta {
 		
 		require_once('modules/CustomView/CustomView.php');
 		$current_user = vtws_preserveGlobal('current_user',$this->user);
-		$theme = vtws_preserveGlobal('theme',$this->user->theme);
+		$theme = vtws_preserveGlobal('theme', isset($this->user->theme) ? $this->user->theme : "");
 		$default_language = VTWS_PreserveGlobal::getGlobal('default_language');
 		global $current_language;
 		if(empty($current_language)) $current_language = $default_language;
diff --git a/include/fields/DateTimeField.php b/include/fields/DateTimeField.php
index cec8648ffc7540595c7f51a2a031fc0e2de78852..21f4d2de793e43b0c9b2a75911e16c9c27b9dbd3 100644
--- a/include/fields/DateTimeField.php
+++ b/include/fields/DateTimeField.php
@@ -86,7 +86,7 @@ class DateTimeField {
                 $user = $current_user;
         }
 
-        $format = $current_user->date_format;
+        $format = isset($current_user->date_format)? $current_user->date_format : "";
         if (empty($format)) {
             if (false === strpos($date, '-')) {
                 if(false === strpos($date, '.')){
@@ -175,7 +175,7 @@ class DateTimeField {
 		if(empty($user)) {
 			$user = $current_user;
 		}
-		$format = $user->date_format;
+		$format = isset($user->date_format) ? $user->date_format : "";
 		if(empty($format)) {
 			$format = 'dd-mm-yyyy';
 		}
@@ -356,7 +356,7 @@ class DateTimeField {
 		if(empty($user)) {
 			$user = $current_user;
 		}
-		return str_replace(array('yyyy', 'mm','dd'), array('Y', 'm', 'd'), $user->date_format);
+		return str_replace(array('yyyy', 'mm','dd'), array('Y', 'm', 'd'), isset($user->date_format)? $user->date_format : "");
 	}
 
 	private static function sanitizeDate($value, $user) {
@@ -371,7 +371,7 @@ class DateTimeField {
 		$time = false;
 
 		/* If date-value is other than yyyy-mm-dd */
-		if(strpos($value, "-") < 4 && $user->date_format) {
+		if(strpos($value, "-") < 4 && isset($user->date_format) && $user->date_format) {
 			list($date, $time) = explode(' ', $value);
 			if(!empty($date)) {
 				switch ($user->date_format) {
diff --git a/include/utils/UserInfoUtil.php b/include/utils/UserInfoUtil.php
index b66edb0a90df16a5f08f4ac752a37d907b48e830..09e84bbdf83b02e8be42f059caa88e7786a235db 100755
--- a/include/utils/UserInfoUtil.php
+++ b/include/utils/UserInfoUtil.php
@@ -1054,8 +1054,9 @@ function getRoleInformation($roleid)
 	$rolename=$adb->query_result($result,0,'rolename');
 	$parentrole=$adb->query_result($result,0,'parentrole');
 	$roledepth=$adb->query_result($result,0,'depth');
-	$parentRoleArr=explode('::',$parentrole);
-	$immediateParent=$parentRoleArr[php7_sizeof($parentRoleArr)-2];
+	$parentRoleArr=explode('::',$parentrole ? $parentrole:'');
+	$parentRoleArrLen=php7_sizeof($parentRoleArr);
+	$immediateParent=$parentRoleArrLen>=2 ? $parentRoleArr[$parentRoleArrLen-2]:null;
 	$roleDet=Array();
 	$roleDet[]=$rolename;
 	$roleDet[]=$parentrole;
@@ -1458,8 +1459,11 @@ function getCombinedUserGlobalPermissions($userId)
 	$no_of_profiles=php7_sizeof($profArr);
 	$userGlobalPerrArr=Array();
 
-	$userGlobalPerrArr=getProfileGlobalPermission($profArr[0]);
-	if($no_of_profiles != 1)
+	if($no_of_profiles) {
+		$userGlobalPerrArr=getProfileGlobalPermission($profArr[0]);
+	}
+	
+	if($no_of_profiles > 1)
 	{
 			for($i=1;$i<$no_of_profiles;$i++)
 		{
@@ -1593,7 +1597,7 @@ function getParentRole($roleId)
 	$log->debug("Entering getParentRole(".$roleId.") method ...");
 	$roleInfo=getRoleInformation($roleId);
 	$parentRole=$roleInfo[$roleId][1];
-	$tempParentRoleArr=explode('::',$parentRole);
+	$tempParentRoleArr=explode('::',$parentRole?$parentRole:'');
 	$parentRoleArr=Array();
 	foreach($tempParentRoleArr as $role_id)
 	{
@@ -2319,4 +2323,4 @@ function appendFromClauseToQuery($query,$fromClause) {
 	return $query;
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/include/utils/VtlibUtils.php b/include/utils/VtlibUtils.php
index c28552ff02faac95f50945f3482da392d25099d3..d31e2a0742f6d45ebdde872f8199fdea1bc346fb 100644
--- a/include/utils/VtlibUtils.php
+++ b/include/utils/VtlibUtils.php
@@ -672,7 +672,7 @@ function vtlib_purify($input, $ignore = false) {
     $value = $input;
 
     if (!is_array($input)) {
-        $md5OfInput = md5($input);
+        $md5OfInput = md5($input ? $input : "");
         if (array_key_exists($md5OfInput, $purified_cache)) {
             $value = $purified_cache[$md5OfInput];
             //to escape cleaning up again
diff --git a/modules/Calendar/Activity.php b/modules/Calendar/Activity.php
index 5e6eaf2e962eb8b54a0e06122f54ce23bedd2370..d92db4f65f1b9c58e185afb82a9375e1708efed2 100644
--- a/modules/Calendar/Activity.php
+++ b/modules/Calendar/Activity.php
@@ -730,7 +730,7 @@ function insertIntoRecurringTable(& $recurObj)
 	 * @param  integer   $recurid         - recuring eventid
 	 * @param  string    $remindermode    - string like 'edit'
 	 */
-	function activity_reminder($activity_id,$reminder_time,$reminder_sent=0,$recurid,$remindermode='')
+	function activity_reminder($activity_id,$reminder_time,$reminder_sent=0,$recurid=0,$remindermode='')
 	{
 		global $log;
 		$log->debug("Entering vtiger_activity_reminder(".$activity_id.",".$reminder_time.",".$reminder_sent.",".$recurid.",".$remindermode.") method ...");
diff --git a/modules/Calendar/models/Module.php b/modules/Calendar/models/Module.php
index 9f34793c1ff430746769919caf522fce064d47e0..e79caedac5b1d430f94dbc08a5a3e3cc2b83a472 100644
--- a/modules/Calendar/models/Module.php
+++ b/modules/Calendar/models/Module.php
@@ -761,7 +761,7 @@ class Calendar_Module_Model extends Vtiger_Module_Model {
 		return $recentRecords;
 	}
 
-	public function getAllTasksbyPriority($conditions = false, $pagingModel) {
+	public function getAllTasksbyPriority($conditions = false, $pagingModel = false) {
 		global $current_user;
 		$currentUserModel = Users_Record_Model::getCurrentUserModel();
 		$db = PearDatabase::getInstance();
diff --git a/modules/Migration/views/Index.php b/modules/Migration/views/Index.php
index 1170148e134a8739fa4aad039999cc6728a959d4..23d0e09036b55a637500a5ad7fb215042a6626ec 100644
--- a/modules/Migration/views/Index.php
+++ b/modules/Migration/views/Index.php
@@ -28,7 +28,7 @@ class Migration_Index_View extends Vtiger_View_Controller {
 
 	public function process(Vtiger_Request $request) {
 		// Override error reporting to production mode
-		version_compare(PHP_VERSION, '5.5.0') <= 0 ? error_reporting(E_WARNING & ~E_NOTICE & ~E_DEPRECATED) : error_reporting(E_WARNING & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
+		// version_compare(PHP_VERSION, '5.5.0') <= 0 ? error_reporting(E_WARNING & ~E_NOTICE & ~E_DEPRECATED) : error_reporting(E_WARNING & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
 		// Migration could be heavy at-times.
 		set_time_limit(0);	
 
diff --git a/modules/Reports/models/Folder.php b/modules/Reports/models/Folder.php
index fd3b7b8f1b2ebe92206e0ae060da9b956ecd1937..896abdab5f8804bfb5df07179b98126cd295ec4d 100644
--- a/modules/Reports/models/Folder.php
+++ b/modules/Reports/models/Folder.php
@@ -366,7 +366,7 @@ class Reports_Folder_Model extends Vtiger_Base_Model {
 	 * @param <Boolean> $skipRecords - List of the RecordIds to be skipped
 	 * @return <Array> List of RecordsIds
 	 */
-	public function getRecordIds($skipRecords=false, $module, $searchParams = array()) {
+	public function getRecordIds($skipRecords=false, $module=null, $searchParams = array()) {
 		$db = PearDatabase::getInstance();
 		$baseTableName = "vtiger_report";
 		$baseTableId = "reportid";
diff --git a/modules/Settings/Workflows/models/Record.php b/modules/Settings/Workflows/models/Record.php
index 5f3fb4530b58b4fe7642e652c5ef5d505a95cbe0..3ba06e174e4805ab371f9bbf9246c9a517b235cc 100644
--- a/modules/Settings/Workflows/models/Record.php
+++ b/modules/Settings/Workflows/models/Record.php
@@ -203,7 +203,7 @@ class Settings_Workflows_Record_Model extends Settings_Vtiger_Record_Model {
 		return $arr[$executionCondition-1];
 	}
 
-	function getV7executionConditionAsLabel($executionCondition=null, $module_name) {
+	function getV7executionConditionAsLabel($executionCondition=null, $module_name=null) {
 		if($executionCondition == null) {
 			$executionCondition = $this->get('execution_condition');
 		}
diff --git a/modules/Users/CreateUserPrivilegeFile.php b/modules/Users/CreateUserPrivilegeFile.php
index ab133756c4108bce8ac28a7f6b4da9facfb9fe17..6e7f38d708f02a16a3467f7afe709301740573ee 100644
--- a/modules/Users/CreateUserPrivilegeFile.php
+++ b/modules/Users/CreateUserPrivilegeFile.php
@@ -149,7 +149,7 @@ if($handle)
                 	{
                         	$parTabId=$adb->query_result($result,$i,'tabid');
                         	$relTabId=$adb->query_result($result,$i,'relatedto_tabid');
-				if(is_array($relModSharArr[$relTabId]))
+				if(isset($relModSharArr[$relTabId]) && is_array($relModSharArr[$relTabId]))
 				{
 					$temArr=$relModSharArr[$relTabId];
 					$temArr[]=$parTabId;
@@ -1838,4 +1838,4 @@ function populateRelatedSharingPrivileges($enttype,$userid,$module,$relmodule,$p
 	}
 
 }
-?>
\ No newline at end of file
+?>
diff --git a/modules/Users/views/UserSetup.php b/modules/Users/views/UserSetup.php
index a1b0421de56f30bf4fb7c5e4e99ec0ce09b3fe19..b27e876c3909afec072ae6d08d68a6de49194a46 100644
--- a/modules/Users/views/UserSetup.php
+++ b/modules/Users/views/UserSetup.php
@@ -36,6 +36,8 @@ class Users_UserSetup_View extends Vtiger_Index_View {
 				$currenciesList = array_merge($defaultcurrency, $currencies);
 				$viewer->assign('IS_FIRST_USER', $isFirstUser);
 				$viewer->assign('CURRENCIES', $currenciesList);
+			} else {
+				$viewer->assign('IS_FIRST_USER', false);
 			}
 
 			$viewer->assign('CURRENT_USER_MODEL',$userModel);
diff --git a/vtlib/Vtiger/Deprecated.php b/vtlib/Vtiger/Deprecated.php
index bf47d8517030ee024ec5010384edfebf1e4d1629..d6d45b187bcfa894c64c65ae53c647b2bb2c684b 100644
--- a/vtlib/Vtiger/Deprecated.php
+++ b/vtlib/Vtiger/Deprecated.php
@@ -42,7 +42,7 @@ class Vtiger_Deprecated {
 		} else {
 			$accessibleFieldNames = array();
 			foreach($fieldsName as $field) {
-				if($module == 'Users' || getColumnVisibilityPermission($current_user->id, $field, $module) == '0') {
+				if($module == 'Users' || getColumnVisibilityPermission($current_user->id, $field, $module) == '0' && isset($fieldValues[$field])) {
 					$accessibleFieldNames[] = $fieldValues[$field];
 				}
 			}
@@ -624,4 +624,4 @@ class Vtiger_Deprecated {
 		$strings = Vtiger_Language_Handler::getModuleStringsFromFile($language, $module);
 		return isset($strings['languageStrings']) ? $strings['languageStrings'] : [];
 	}
-}
\ No newline at end of file
+}