diff --git a/layouts/v7/modules/Settings/Leads/LeadMappingEdit.tpl b/layouts/v7/modules/Settings/Leads/LeadMappingEdit.tpl
index bea3a5c0ff67ea7c3293fa5574864b05a78bbf33..ce4f705946b29d893d5c40b5fa693237268879b7 100644
--- a/layouts/v7/modules/Settings/Leads/LeadMappingEdit.tpl
+++ b/layouts/v7/modules/Settings/Leads/LeadMappingEdit.tpl
@@ -62,7 +62,7 @@
                                                         {foreach key=FIELD_TYPE item=FIELDS_INFO from=$ACCOUNTS_MODULE_MODEL->getFields()}
                                                             {foreach key=FIELD_ID item=FIELD_OBJECT from=$FIELDS_INFO}
                                                                 {if $MAPPING_ARRAY['Leads']['fieldDataType'] eq $FIELD_TYPE}
-                                                                    <option data-type="{$FIELD_TYPE}" {if $FIELD_ID eq $MAPPING_ARRAY['Accounts']['id']} selected {/if} label="{vtranslate($FIELD_OBJECT->get('label'), $ACCOUNTS_MODULE_MODEL->getName())}" value="{$FIELD_ID}">
+                                                                    <option data-type="{$FIELD_TYPE}" {if isset($MAPPING_ARRAY['Accounts']['id']) && $FIELD_ID eq $MAPPING_ARRAY['Accounts']['id']} selected {/if} label="{vtranslate($FIELD_OBJECT->get('label'), $ACCOUNTS_MODULE_MODEL->getName())}" value="{$FIELD_ID}">
                                                                             {vtranslate($FIELD_OBJECT->get('label'), $ACCOUNTS_MODULE_MODEL->getName())}
                                                                     </option>
                                                                 {/if}
@@ -76,7 +76,7 @@
                                                     {foreach key=FIELD_TYPE item=FIELDS_INFO from=$CONTACTS_MODULE_MODEL->getFields()}
                                                         {foreach key=FIELD_ID item=FIELD_OBJECT from=$FIELDS_INFO}
                                                             {if $MAPPING_ARRAY['Leads']['fieldDataType'] eq $FIELD_TYPE}
-                                                                <option data-type="{$FIELD_TYPE}" {if $FIELD_ID eq $MAPPING_ARRAY['Contacts']['id']} selected {/if} label="{vtranslate($FIELD_OBJECT->get('label'), $CONTACTS_MODULE_MODEL->getName())}" value="{$FIELD_ID}">
+                                                                <option data-type="{$FIELD_TYPE}" {if isset($MAPPING_ARRAY['Contacts']['id']) && $FIELD_ID eq $MAPPING_ARRAY['Contacts']['id']} selected {/if} label="{vtranslate($FIELD_OBJECT->get('label'), $CONTACTS_MODULE_MODEL->getName())}" value="{$FIELD_ID}">
                                                                     {vtranslate($FIELD_OBJECT->get('label'), $CONTACTS_MODULE_MODEL->getName())}
                                                                 </option>
                                                             {/if}
@@ -90,7 +90,7 @@
                                                     {foreach key=FIELD_TYPE item=FIELDS_INFO from=$POTENTIALS_MODULE_MODEL->getFields()}
                                                         {foreach key=FIELD_ID item=FIELD_OBJECT from=$FIELDS_INFO}
                                                             {if $MAPPING_ARRAY['Leads']['fieldDataType'] eq $FIELD_TYPE}
-                                                                <option data-type="{$FIELD_TYPE}" {if $FIELD_ID eq $MAPPING_ARRAY['Potentials']['id']} selected {/if} label="{vtranslate($FIELD_OBJECT->get('label'), $POTENTIALS_MODULE_MODEL->getName())}" value="{$FIELD_ID}">
+                                                                <option data-type="{$FIELD_TYPE}" {if isset($MAPPING_ARRAY['Potentials']['id']) && $FIELD_ID eq $MAPPING_ARRAY['Potentials']['id']} selected {/if} label="{vtranslate($FIELD_OBJECT->get('label'), $POTENTIALS_MODULE_MODEL->getName())}" value="{$FIELD_ID}">
                                                                     {vtranslate($FIELD_OBJECT->get('label'), $POTENTIALS_MODULE_MODEL->getName())}
                                                                 </option>
                                                             {/if}
diff --git a/layouts/v7/modules/Settings/Leads/MappingDetail.tpl b/layouts/v7/modules/Settings/Leads/MappingDetail.tpl
index 22f86c12e81b3b0f21d8809ee5b12eef66f7918d..00920d5cf33ba822f0f28183b4ff904f4fe9de1d 100644
--- a/layouts/v7/modules/Settings/Leads/MappingDetail.tpl
+++ b/layouts/v7/modules/Settings/Leads/MappingDetail.tpl
@@ -52,9 +52,21 @@
                                 </td>
                                 <td width="10%">{vtranslate({$MAPPING['Leads']['label']}, 'Leads')}</td>
                                 <td width="10%">{vtranslate({$MAPPING['Leads']['fieldDataType']}, $QUALIFIED_MODULE)}</td>
-                                <td width="10%">{vtranslate({$MAPPING['Accounts']['label']}, 'Accounts')}</td>
-                                <td width="10%">{vtranslate({$MAPPING['Contacts']['label']}, 'Contacts')}</td>
-                                <td width="10%">{vtranslate({$MAPPING['Potentials']['label']}, 'Potentials')}</td>
+                                <td width="10%">
+                                {if isset($MAPPING['Accounts']['label'])}
+                                    {vtranslate({$MAPPING['Accounts']['label']}, 'Accounts')}
+                                {/if}
+                                </td>
+                                <td width="10%">
+                                {if isset($MAPPING['Contacts']['label'])}
+                                    {vtranslate({$MAPPING['Contacts']['label']}, 'Contacts')}</td>
+                                {/if}
+                                </td>
+                                <td width="10%">
+                                {if isset($MAPPING['Potentials']['label'])}
+                                    {vtranslate({$MAPPING['Potentials']['label']}, 'Potentials')}</td>
+                                {/if}
+                                </td>
                             </tr>
                         {/foreach}
                     </tbody>
diff --git a/modules/Settings/Leads/models/Mapping.php b/modules/Settings/Leads/models/Mapping.php
index 46de5786b4ad54e6d6c5d3655765ecc90364f2aa..b8deba01d7964b0baa65ae82c5c5a2e537c07c50 100644
--- a/modules/Settings/Leads/models/Mapping.php
+++ b/modules/Settings/Leads/models/Mapping.php
@@ -75,7 +75,7 @@ class Settings_Leads_Mapping_Model extends Settings_Vtiger_Module_Model {
 	 * @return <Array> list of mapping details
 	 */
 	public function getMapping($editable = false) {
-		if (!$this->mapping) {
+		if (!property_exists($this,'mapping') || !$this->mapping) {
 			$db = PearDatabase::getInstance();
 			$query = 'SELECT * FROM vtiger_convertleadmapping';
 			if ($editable) {
@@ -102,9 +102,9 @@ class Settings_Leads_Mapping_Model extends Settings_Vtiger_Module_Model {
 				$finalMapping[$mappingId] = array(
 						'editable'	=> $mappingDetails['editable'],
 						'Leads'		=> $fieldLabelsList[$mappingDetails['leadfid']],
-						'Accounts'	=> $fieldLabelsList[$mappingDetails['accountfid']],
-						'Contacts'	=> $fieldLabelsList[$mappingDetails['contactfid']],
-						'Potentials'=> $fieldLabelsList[$mappingDetails['potentialfid']]
+						'Accounts'	=> isset($fieldLabelsList[$mappingDetails['accountfid']]) ? $fieldLabelsList[$mappingDetails['accountfid']] : null,
+						'Contacts'	=> isset($fieldLabelsList[$mappingDetails['contactfid']]) ? $fieldLabelsList[$mappingDetails['contactfid']] : null,
+						'Potentials'=> isset($fieldLabelsList[$mappingDetails['potentialfid']]) ? $fieldLabelsList[$mappingDetails['potentialfid']] : null
 				);
 			}
 
@@ -154,8 +154,8 @@ class Settings_Leads_Mapping_Model extends Settings_Vtiger_Module_Model {
 		$db = PearDatabase::getInstance();
 		$deleteMappingsList = $updateMappingsList = $createMappingsList = array();
 		foreach ($mapping as $mappingDetails) {
-			$mappingId = $mappingDetails['mappingId'];
-			if ($mappingDetails['lead']) {
+			$mappingId = isset($mappingDetails['mappingId']) ? $mappingDetails['mappingId'] : null;
+			if (isset($mappingDetails['lead']) && $mappingDetails['lead']) {
 				if ($mappingId) {
 					if ((array_key_exists('deletable', $mappingDetails)) || (!$mappingDetails['account'] && !$mappingDetails['contact'] && !$mappingDetails['potential'])) {
 						$deleteMappingsList[] = $mappingId;
diff --git a/modules/Settings/Leads/models/Module.php b/modules/Settings/Leads/models/Module.php
index 6a120d1f390dc5c491975e39035f7d768ed9eb93..3f65a55fa1ce1e94a4771198d91820a83d308ccf 100644
--- a/modules/Settings/Leads/models/Module.php
+++ b/modules/Settings/Leads/models/Module.php
@@ -33,7 +33,7 @@ class Settings_Leads_Module_Model extends Vtiger_Module_Model {
 	 * @return <Array> list of field ids
 	 */
 	public function getMappingSupportedFieldIdsList() {
-		if (!$this->supportedFieldIdsList) {
+		if (!property_exists($this,'supportedFieldIdsList') || !$this->supportedFieldIdsList) {
 			$selectedTabidsList[] = getTabid($this->getName());
 			$restrictedFieldNames = array('campaignrelstatus');
 			$restrictedUitypes = $this->getRestrictedUitypes();