diff --git a/modules/Calendar/actions/SaveAjax.php b/modules/Calendar/actions/SaveAjax.php
index 398fc9e318d1fbe3c15bc253326b380bb1dcbea9..8cb299e75c3069b38e65d448dd6625716b112f2e 100644
--- a/modules/Calendar/actions/SaveAjax.php
+++ b/modules/Calendar/actions/SaveAjax.php
@@ -48,44 +48,46 @@ class Calendar_SaveAjax_Action extends Vtiger_SaveAjax_Action {
 			$fieldModelList = $recordModel->getModule()->getFields();
 			$result = array();
 			foreach ($fieldModelList as $fieldName => $fieldModel) {
-				$recordFieldValue = $recordModel->get($fieldName);
-				if(is_array($recordFieldValue) && $fieldModel->getFieldDataType() == 'multipicklist') {
-					$recordFieldValue = implode(' |##| ', $recordFieldValue);
-				}
-				$fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordFieldValue);
-				if ($fieldModel->getFieldDataType() !== 'currency' && $fieldModel->getFieldDataType() !== 'datetime' && $fieldModel->getFieldDataType() !== 'date') { 
-					$displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId()); 
-				}
-				$result[$fieldName] = array();
-				if($fieldName == 'date_start') {
-					$timeStart = $recordModel->get('time_start');
-					$dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeStart);
-
-					$fieldValue = $fieldValue.' '.$timeStart;
-
-					$userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue();
-					$dateTimeComponents = explode(' ',$userDateTimeString);
-					$dateComponent = $dateTimeComponents[0];
-					//Conveting the date format in to Y-m-d . since full calendar expects in the same format
-					$dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format'));
-					$result[$fieldName]['calendar_display_value'] = $dataBaseDateFormatedString.' '. $dateTimeComponents[1];
-					$displayValue = $fieldModel->getDisplayValue($fieldValue);
-				} else if($fieldName == 'due_date') {
-					$timeEnd = $recordModel->get('time_end');
-					$dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeEnd);
-
-					$fieldValue = $fieldValue.' '.$timeEnd;
-
-					$userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue();
-					$dateTimeComponents = explode(' ',$userDateTimeString);
-					$dateComponent = $dateTimeComponents[0];
-					//Conveting the date format in to Y-m-d . since full calendar expects in the same format
-					$dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format'));
-					$result[$fieldName]['calendar_display_value']   =  $dataBaseDateFormatedString.' '. $dateTimeComponents[1];
-					$displayValue = $fieldModel->getDisplayValue($fieldValue);
+				if($fieldModel->isViewable()){
+					$recordFieldValue = $recordModel->get($fieldName);
+					if(is_array($recordFieldValue) && $fieldModel->getFieldDataType() == 'multipicklist') {
+						$recordFieldValue = implode(' |##| ', $recordFieldValue);
+					}
+					$fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordFieldValue);
+					if ($fieldModel->getFieldDataType() !== 'currency' && $fieldModel->getFieldDataType() !== 'datetime' && $fieldModel->getFieldDataType() !== 'date') { 
+						$displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId()); 
+					}
+					$result[$fieldName] = array();
+					if($fieldName == 'date_start') {
+						$timeStart = $recordModel->get('time_start');
+						$dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeStart);
+
+						$fieldValue = $fieldValue.' '.$timeStart;
+
+						$userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue();
+						$dateTimeComponents = explode(' ',$userDateTimeString);
+						$dateComponent = $dateTimeComponents[0];
+						//Conveting the date format in to Y-m-d . since full calendar expects in the same format
+						$dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format'));
+						$result[$fieldName]['calendar_display_value'] = $dataBaseDateFormatedString.' '. $dateTimeComponents[1];
+						$displayValue = $fieldModel->getDisplayValue($fieldValue);
+					} else if($fieldName == 'due_date') {
+						$timeEnd = $recordModel->get('time_end');
+						$dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeEnd);
+
+						$fieldValue = $fieldValue.' '.$timeEnd;
+
+						$userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue();
+						$dateTimeComponents = explode(' ',$userDateTimeString);
+						$dateComponent = $dateTimeComponents[0];
+						//Conveting the date format in to Y-m-d . since full calendar expects in the same format
+						$dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format'));
+						$result[$fieldName]['calendar_display_value']   =  $dataBaseDateFormatedString.' '. $dateTimeComponents[1];
+						$displayValue = $fieldModel->getDisplayValue($fieldValue);
+					}
+					$result[$fieldName]['value'] = $fieldValue;
+					$result[$fieldName]['display_value'] = decode_html($displayValue);
 				}
-				$result[$fieldName]['value'] = $fieldValue;
-				$result[$fieldName]['display_value'] = decode_html($displayValue);
 			}
 
 			$result['_recordLabel'] = $recordModel->getName();
diff --git a/modules/Events/actions/SaveAjax.php b/modules/Events/actions/SaveAjax.php
index b935de2e8c38360fef61f08b7be1d75e829c93ca..79d950f708752539178848cbfdd61eead16f6753 100644
--- a/modules/Events/actions/SaveAjax.php
+++ b/modules/Events/actions/SaveAjax.php
@@ -45,44 +45,46 @@ class Events_SaveAjax_Action extends Events_Save_Action {
 			$fieldModelList = $recordModel->getModule()->getFields();
 			$result = array();
 			foreach ($fieldModelList as $fieldName => $fieldModel) {
-				$recordFieldValue = $recordModel->get($fieldName);
-				if (is_array($recordFieldValue) && $fieldModel->getFieldDataType() == 'multipicklist') {
-					$recordFieldValue = implode(' |##| ', $recordFieldValue);
-				}
-				$fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordFieldValue);
-				if ($fieldModel->getFieldDataType() !== 'currency' && $fieldModel->getFieldDataType() !== 'datetime' && $fieldModel->getFieldDataType() !== 'date') {
-					$displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId());
-				}
-				$result[$fieldName] = array();
-				if ($fieldName == 'date_start') {
-					$timeStart = $recordModel->get('time_start');
-					$dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeStart);
-
-					$fieldValue = $fieldValue . ' ' . $timeStart;
-
-					$userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue();
-					$dateTimeComponents = explode(' ', $userDateTimeString);
-					$dateComponent = $dateTimeComponents[0];
-					//Conveting the date format in to Y-m-d . since full calendar expects in the same format
-					$dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format'));
-					$result[$fieldName]['calendar_display_value'] = $dataBaseDateFormatedString . ' ' . $dateTimeComponents[1];
-					$displayValue = $fieldModel->getDisplayValue($fieldValue);
-				} else if ($fieldName == 'due_date') {
-					$timeEnd = $recordModel->get('time_end');
-					$dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeEnd);
-
-					$fieldValue = $fieldValue . ' ' . $timeEnd;
-
-					$userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue();
-					$dateTimeComponents = explode(' ', $userDateTimeString);
-					$dateComponent = $dateTimeComponents[0];
-					//Conveting the date format in to Y-m-d . since full calendar expects in the same format
-					$dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format'));
-					$result[$fieldName]['calendar_display_value'] = $dataBaseDateFormatedString . ' ' . $dateTimeComponents[1];
-					$displayValue = $fieldModel->getDisplayValue($fieldValue);
+				if($fieldModel->isViewable()){
+					$recordFieldValue = $recordModel->get($fieldName);
+					if (is_array($recordFieldValue) && $fieldModel->getFieldDataType() == 'multipicklist') {
+						$recordFieldValue = implode(' |##| ', $recordFieldValue);
+					}
+					$fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordFieldValue);
+					if ($fieldModel->getFieldDataType() !== 'currency' && $fieldModel->getFieldDataType() !== 'datetime' && $fieldModel->getFieldDataType() !== 'date') {
+						$displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId());
+					}
+					$result[$fieldName] = array();
+					if ($fieldName == 'date_start') {
+						$timeStart = $recordModel->get('time_start');
+						$dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeStart);
+
+						$fieldValue = $fieldValue . ' ' . $timeStart;
+
+						$userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue();
+						$dateTimeComponents = explode(' ', $userDateTimeString);
+						$dateComponent = $dateTimeComponents[0];
+						//Conveting the date format in to Y-m-d . since full calendar expects in the same format
+						$dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format'));
+						$result[$fieldName]['calendar_display_value'] = $dataBaseDateFormatedString . ' ' . $dateTimeComponents[1];
+						$displayValue = $fieldModel->getDisplayValue($fieldValue);
+					} else if ($fieldName == 'due_date') {
+						$timeEnd = $recordModel->get('time_end');
+						$dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeEnd);
+
+						$fieldValue = $fieldValue . ' ' . $timeEnd;
+
+						$userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue();
+						$dateTimeComponents = explode(' ', $userDateTimeString);
+						$dateComponent = $dateTimeComponents[0];
+						//Conveting the date format in to Y-m-d . since full calendar expects in the same format
+						$dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format'));
+						$result[$fieldName]['calendar_display_value'] = $dataBaseDateFormatedString . ' ' . $dateTimeComponents[1];
+						$displayValue = $fieldModel->getDisplayValue($fieldValue);
+					}
+					$result[$fieldName]['value'] = $fieldValue;
+					$result[$fieldName]['display_value'] = decode_html($displayValue);
 				}
-				$result[$fieldName]['value'] = $fieldValue;
-				$result[$fieldName]['display_value'] = decode_html($displayValue);
 			}
 
 			$result['_recordLabel'] = $recordModel->getName();
diff --git a/modules/Products/actions/SaveAjax.php b/modules/Products/actions/SaveAjax.php
index 3c140e0495bd9f2702ad534b1f47bfe876fae343..61e8c732242f38290867963799a8b5b7310783e5 100644
--- a/modules/Products/actions/SaveAjax.php
+++ b/modules/Products/actions/SaveAjax.php
@@ -22,27 +22,29 @@ class Products_SaveAjax_Action extends Vtiger_SaveAjax_Action {
 		$result = array();
 		$picklistColorMap = array();
 		foreach ($fieldModelList as $fieldName => $fieldModel) {
-			$recordFieldValue = $recordModel->get($fieldName);
-			if (is_array($recordFieldValue) && $fieldModel->getFieldDataType() == 'multipicklist') {
-				foreach ($recordFieldValue as $picklistValue) {
-					$picklistColorMap[$picklistValue] = Settings_Picklist_Module_Model::getPicklistColorByValue($fieldName, $picklistValue);
+			if($fieldModel->isViewable()){
+				$recordFieldValue = $recordModel->get($fieldName);
+				if (is_array($recordFieldValue) && $fieldModel->getFieldDataType() == 'multipicklist') {
+					foreach ($recordFieldValue as $picklistValue) {
+						$picklistColorMap[$picklistValue] = Settings_Picklist_Module_Model::getPicklistColorByValue($fieldName, $picklistValue);
+					}
+					$recordFieldValue = implode(' |##| ', $recordFieldValue);
+				}
+				if ($fieldModel->getFieldDataType() == 'picklist') {
+					$picklistColorMap[$recordFieldValue] = Settings_Picklist_Module_Model::getPicklistColorByValue($fieldName, $recordFieldValue);
+				}
+				$fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordFieldValue);
+				if ($fieldName !== 'unit_price' && $fieldModel->getFieldDataType() !== 'datetime'  && $fieldModel->getFieldDataType() !== 'double') {
+					$displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId());
+				}
+				if ($fieldModel->getFieldDataType() == 'reference') {
+					$displayValue = $fieldModel->getEditViewDisplayValue($fieldValue);
+				}
+				if (!empty($picklistColorMap)) {
+					$result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue, 'colormap' => $picklistColorMap);
+				} else {
+					$result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue);
 				}
-				$recordFieldValue = implode(' |##| ', $recordFieldValue);
-			}
-			if ($fieldModel->getFieldDataType() == 'picklist') {
-				$picklistColorMap[$recordFieldValue] = Settings_Picklist_Module_Model::getPicklistColorByValue($fieldName, $recordFieldValue);
-			}
-			$fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordFieldValue);
-			if ($fieldName !== 'unit_price' && $fieldModel->getFieldDataType() !== 'datetime'  && $fieldModel->getFieldDataType() !== 'double') {
-				$displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId());
-			}
-			if ($fieldModel->getFieldDataType() == 'reference') {
-				$displayValue = $fieldModel->getEditViewDisplayValue($fieldValue);
-			}
-			if (!empty($picklistColorMap)) {
-				$result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue, 'colormap' => $picklistColorMap);
-			} else {
-				$result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue);
 			}
 		}
 
diff --git a/modules/Users/actions/SaveAjax.php b/modules/Users/actions/SaveAjax.php
index 41e11bed7ff3e453d45c761558de49455a08cb02..cc07d0ad36ab14fb1582198bee15e425125538d5 100644
--- a/modules/Users/actions/SaveAjax.php
+++ b/modules/Users/actions/SaveAjax.php
@@ -50,17 +50,19 @@ class Users_SaveAjax_Action extends Vtiger_SaveAjax_Action {
 		$fieldModelList = $recordModel->getModule()->getFields();
 		$result = array();
 		foreach ($fieldModelList as $fieldName => $fieldModel) {
-			$fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordModel->get($fieldName));
-			if ($fieldModel->getFieldDataType() !== 'currency') {
-				$displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId());
+			if($fieldModel->isViewable()){
+				$fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordModel->get($fieldName));
+				if ($fieldModel->getFieldDataType() !== 'currency') {
+					$displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId());
+				}
+				if($fieldName == 'language') {
+					$displayValue =  Vtiger_Language_Handler::getLanguageLabel($fieldValue);
+				}
+				if(($fieldName == 'currency_decimal_separator' || $fieldName == 'currency_grouping_separator') && ($displayValue == ' ')) {
+					$displayValue = vtranslate('Space', 'Users');
+				}
+				$result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue);
 			}
-			if($fieldName == 'language') {
-				$displayValue =  Vtiger_Language_Handler::getLanguageLabel($fieldValue);
-			}
-			if(($fieldName == 'currency_decimal_separator' || $fieldName == 'currency_grouping_separator') && ($displayValue == ' ')) {
-				$displayValue = vtranslate('Space', 'Users');
-			}
-			$result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue);
 		}
 
 		$result['_recordLabel'] = $recordModel->getName();
diff --git a/modules/Vtiger/actions/SaveAjax.php b/modules/Vtiger/actions/SaveAjax.php
index 7538305caff4ac3736c55a81ca980e89c73a7b39..ad4e830dee5bea1d41e538bcbba7612d52025429 100644
--- a/modules/Vtiger/actions/SaveAjax.php
+++ b/modules/Vtiger/actions/SaveAjax.php
@@ -22,27 +22,29 @@ class Vtiger_SaveAjax_Action extends Vtiger_Save_Action {
 			$result = array();
 			$picklistColorMap = array();
 			foreach ($fieldModelList as $fieldName => $fieldModel) {
-				$recordFieldValue = $recordModel->get($fieldName);
-				if(is_array($recordFieldValue) && $fieldModel->getFieldDataType() == 'multipicklist') {
-					foreach ($recordFieldValue as $picklistValue) {
-						$picklistColorMap[$picklistValue] = Settings_Picklist_Module_Model::getPicklistColorByValue($fieldName, $picklistValue);
+				if($fieldModel->isViewable()){
+					$recordFieldValue = $recordModel->get($fieldName);
+					if(is_array($recordFieldValue) && $fieldModel->getFieldDataType() == 'multipicklist') {
+						foreach ($recordFieldValue as $picklistValue) {
+							$picklistColorMap[$picklistValue] = Settings_Picklist_Module_Model::getPicklistColorByValue($fieldName, $picklistValue);
+						}
+						$recordFieldValue = implode(' |##| ', $recordFieldValue);     
+					}
+					if($fieldModel->getFieldDataType() == 'picklist') {
+						$picklistColorMap[$recordFieldValue] = Settings_Picklist_Module_Model::getPicklistColorByValue($fieldName, $recordFieldValue);
+					}
+					$fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordFieldValue);
+					if ($fieldModel->getFieldDataType() !== 'currency' && $fieldModel->getFieldDataType() !== 'datetime' && $fieldModel->getFieldDataType() !== 'date' && $fieldModel->getFieldDataType() !== 'double') { 
+						$displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId()); 
+					}
+					if ($fieldModel->getFieldDataType() == 'currency') {
+						$displayValue = Vtiger_Currency_UIType::transformDisplayValue($fieldValue);
+					}
+					if(!empty($picklistColorMap)) {
+						$result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue, 'colormap' => $picklistColorMap);
+					} else {
+						$result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue);
 					}
-					$recordFieldValue = implode(' |##| ', $recordFieldValue);     
-				}
-				if($fieldModel->getFieldDataType() == 'picklist') {
-					$picklistColorMap[$recordFieldValue] = Settings_Picklist_Module_Model::getPicklistColorByValue($fieldName, $recordFieldValue);
-				}
-				$fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordFieldValue);
-				if ($fieldModel->getFieldDataType() !== 'currency' && $fieldModel->getFieldDataType() !== 'datetime' && $fieldModel->getFieldDataType() !== 'date' && $fieldModel->getFieldDataType() !== 'double') { 
-					$displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId()); 
-				}
-				if ($fieldModel->getFieldDataType() == 'currency') {
-					$displayValue = Vtiger_Currency_UIType::transformDisplayValue($fieldValue);
-				}
-				if(!empty($picklistColorMap)) {
-					$result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue, 'colormap' => $picklistColorMap);
-				} else {
-					$result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue);
 				}
 			}
 
diff --git a/pkg/vtiger/modules/ModComments/modules/ModComments/actions/SaveAjax.php b/pkg/vtiger/modules/ModComments/modules/ModComments/actions/SaveAjax.php
index f99ca966a250a3d15be496a5b1e1e1df3f851209..b5e7feecda33cd3f5b0ab66c404e547d60638bf8 100644
--- a/pkg/vtiger/modules/ModComments/modules/ModComments/actions/SaveAjax.php
+++ b/pkg/vtiger/modules/ModComments/modules/ModComments/actions/SaveAjax.php
@@ -30,8 +30,10 @@ class ModComments_SaveAjax_Action extends Vtiger_SaveAjax_Action {
 		$fieldModelList = $recordModel->getModule()->getFields();
 		$result = array();
 		foreach ($fieldModelList as $fieldName => $fieldModel) {
-			$fieldValue = $recordModel->get($fieldName);
-			$result[$fieldName] = array('value' => $fieldValue, 'display_value' => $fieldModel->getDisplayValue($fieldValue));
+			if($fieldModel->isViewable()){
+				$fieldValue = $recordModel->get($fieldName);
+				$result[$fieldName] = array('value' => $fieldValue, 'display_value' => $fieldModel->getDisplayValue($fieldValue));
+			}
 		}
 		$result['id'] = $result['_recordId'] = $recordModel->getId();
 		$result['_recordLabel'] = $recordModel->getName();