diff --git a/include/utils/UserInfoUtil.php b/include/utils/UserInfoUtil.php
index 2ce1811cc2c4d200d78e3cce48ab8814ec112da8..632e79778e048cfd512b512315b424c78a6657a0 100755
--- a/include/utils/UserInfoUtil.php
+++ b/include/utils/UserInfoUtil.php
@@ -1082,7 +1082,7 @@ function getRoleUsers($roleId)
 	$roleRelatedUsers=Array();
 	for($i=0; $i<$num_rows; $i++)
 	{
-		$roleRelatedUsers[$adb->query_result($result,$i,'userid')]=getFullNameFromQResult($result, $i, 'Users');
+		$roleRelatedUsers[$adb->query_result($result,$i,'userid')]=$adb->query_result($result,$i,'userlabel');
 	}
 	$log->debug("Exiting getRoleUsers method ...");
 	return $roleRelatedUsers;
@@ -1302,14 +1302,14 @@ function getAllUserName()
 	global $log;
 	$log->debug("Entering getAllUserName() method ...");
 	global $adb;
-	$query="select * from vtiger_users where deleted=0";
+	$query="select id, userlabel from vtiger_users where deleted=0";
 	$result = $adb->pquery($query, array());
 	$num_rows=$adb->num_rows($result);
 	$user_details=Array();
 	for($i=0;$i<$num_rows;$i++)
 	{
 		$userid=$adb->query_result($result,$i,'id');
-		$username=getFullNameFromQResult($result, $i, 'Users');
+		$username=$adb->query_result($result,$i,'userlabel');
 		$user_details[$userid]=$username;
 
 	}
diff --git a/include/utils/utils.php b/include/utils/utils.php
index a5a4e1b4afc5a9cae97a69f0c1d846f638b11bab..e1c93af892ba823fa64b3b4915351cddf075b78e 100755
--- a/include/utils/utils.php
+++ b/include/utils/utils.php
@@ -136,24 +136,24 @@ function get_user_array($add_blank=true, $status="Active", $assigned_user="",$pr
 		$temp_result = Array();
 		// Including deleted vtiger_users for now.
 		if (empty($status)) {
-				$query = "SELECT id, user_name from vtiger_users";
+				$query = "SELECT id, user_name, userlabel from vtiger_users";
 				$params = array();
 		}
 		else {
 				if($private == 'private')
 				{
 					$log->debug("Sharing is Private. Only the current user should be listed");
-					$query = "select id as id,user_name as user_name,first_name,last_name from vtiger_users where id=? and status='Active' union select vtiger_user2role.userid as id,vtiger_users.user_name as user_name ,
-							  vtiger_users.first_name as first_name ,vtiger_users.last_name as last_name
+					$query = "select id as id,user_name as user_name,first_name,last_name,userlabel from vtiger_users where id=? and status='Active' union select vtiger_user2role.userid as id,vtiger_users.user_name as user_name ,
+							  vtiger_users.first_name as first_name ,vtiger_users.last_name as last_name, vtiger_users.userlabel AS userlabel 
 							  from vtiger_user2role inner join vtiger_users on vtiger_users.id=vtiger_user2role.userid inner join vtiger_role on vtiger_role.roleid=vtiger_user2role.roleid where vtiger_role.parentrole like ? and status='Active' union
 							  select shareduserid as id,vtiger_users.user_name as user_name ,
-							  vtiger_users.first_name as first_name ,vtiger_users.last_name as last_name  from vtiger_tmp_write_user_sharing_per inner join vtiger_users on vtiger_users.id=vtiger_tmp_write_user_sharing_per.shareduserid where status='Active' and vtiger_tmp_write_user_sharing_per.userid=? and vtiger_tmp_write_user_sharing_per.tabid=? and (user_name != 'admin' OR is_owner=1)";
+							  vtiger_users.first_name as first_name ,vtiger_users.last_name as last_name,vtiger_users.userlabel AS userlabel from vtiger_tmp_write_user_sharing_per inner join vtiger_users on vtiger_users.id=vtiger_tmp_write_user_sharing_per.shareduserid where status='Active' and vtiger_tmp_write_user_sharing_per.userid=? and vtiger_tmp_write_user_sharing_per.tabid=? and (user_name != 'admin' OR is_owner=1)";
 					$params = array($current_user->id, $current_user_parent_role_seq."::%", $current_user->id, getTabid($module));
 				}
 				else
 				{
 					$log->debug("Sharing is Public. All vtiger_users should be listed");
-					$query = "SELECT id, user_name,first_name,last_name from vtiger_users WHERE status=? and (user_name != 'admin' OR is_owner=1)";
+					$query = "SELECT id, user_name,first_name,last_name,userlabel from vtiger_users WHERE status=? and (user_name != 'admin' OR is_owner=1)";
 					$params = array($status);
 				}
 		}
@@ -174,7 +174,7 @@ function get_user_array($add_blank=true, $status="Active", $assigned_user="",$pr
 		// Get the id and the name.
 		while($row = $db->fetchByAssoc($result))
 		{
-			$temp_result[$row['id']] = getFullNameFromArray('Users', $row);
+			$temp_result[$row['id']] = $row['userlabel'];
 		}
 
 		$user_array = &$temp_result;
diff --git a/layouts/v7/modules/Vtiger/Header.tpl b/layouts/v7/modules/Vtiger/Header.tpl
index f42113ed79d7bdf89799605fc82a1a59ffb87d02..707f6117481cdf2a0f85d23be636f5df715556c9 100644
--- a/layouts/v7/modules/Vtiger/Header.tpl
+++ b/layouts/v7/modules/Vtiger/Header.tpl
@@ -60,7 +60,7 @@
             {if $CURRENT_USER_MODEL}
                _USERMETA =  { 'id' : "{$CURRENT_USER_MODEL->get('id')}", 'menustatus' : "{$CURRENT_USER_MODEL->get('leftpanelhide')}", 
                               'currency' : "{$USER_CURRENCY_SYMBOL}", 'currencySymbolPlacement' : "{$CURRENT_USER_MODEL->get('currency_symbol_placement')}",
-                          'currencyGroupingPattern' : "{$CURRENT_USER_MODEL->get('currency_grouping_pattern')}", 'truncateTrailingZeros' : "{$CURRENT_USER_MODEL->get('truncate_trailing_zeros')}"};
+                          'currencyGroupingPattern' : "{$CURRENT_USER_MODEL->get('currency_grouping_pattern')}", 'truncateTrailingZeros' : "{$CURRENT_USER_MODEL->get('truncate_trailing_zeros')}",'userlabel':"{decode_html($CURRENT_USER_MODEL->get('userlabel'))}",};
             {/if}
 		</script>
 	</head>
diff --git a/layouts/v7/modules/Vtiger/partials/Topbar.tpl b/layouts/v7/modules/Vtiger/partials/Topbar.tpl
index febd704847fcaed929f67a796629e7018ad2c70f..8ea4a0f2be380a8d11068e6c9369c3a2e1c20c1e 100644
--- a/layouts/v7/modules/Vtiger/partials/Topbar.tpl
+++ b/layouts/v7/modules/Vtiger/partials/Topbar.tpl
@@ -152,7 +152,7 @@
 						<li class="dropdown">
 							<div>
 								<a href="#" class="userName dropdown-toggle pull-right" data-toggle="dropdown" role="button">
-									<span class="fa fa-user" aria-hidden="true" title="{$USER_MODEL->get('first_name')} {$USER_MODEL->get('last_name')}
+									<span class="fa fa-user" aria-hidden="true" title="{$USER_MODEL->get('userlabel')}
 										  ({$USER_MODEL->get('user_name')})"></span>
 									<span class="link-text-xs-only hidden-lg hidden-md hidden-sm">{$USER_MODEL->getName()}</span>
 								</a>
diff --git a/layouts/vlayout/modules/Emails/EmailPreviewPrint.tpl b/layouts/vlayout/modules/Emails/EmailPreviewPrint.tpl
index f1c1d829031aeaba3c41a923c35c77dd26757594..dc75e49041880f00f0acce8fc69310461f85ebb1 100644
--- a/layouts/vlayout/modules/Emails/EmailPreviewPrint.tpl
+++ b/layouts/vlayout/modules/Emails/EmailPreviewPrint.tpl
@@ -20,7 +20,7 @@
 		{assign var="TO_EMAIL" value=$TO_EMAILS|replace:'[':''}
 		{assign var="TO_EMAIL_VALUE" value=$TO_EMAIL|replace:'&quot;':''}
 		<span style="position:absolute;right:6%;top:3%;font-family:'Lucida Grande';font-size:15px">
-			{$USER_MODEL->get('last_name')} {$USER_MODEL->get('first_name')} &lt;{$USER_MODEL->get('email1')}&gt;
+			{$USER_MODEL->get('userlabel')} &lt;{$USER_MODEL->get('email1')}&gt;
 		</span><hr/>
 		<span style="font-family:'Lucida Grande';font-size:15px">
 			{$RECORD->get('subject')}
diff --git a/modules/Calendar/CalendarCommon.php b/modules/Calendar/CalendarCommon.php
index cfecd4161fba2e0a6e0740ab8c8a25b28a9e83c1..93ea23f7eea69c46923fcf1ab544662976470903 100644
--- a/modules/Calendar/CalendarCommon.php
+++ b/modules/Calendar/CalendarCommon.php
@@ -225,12 +225,11 @@ function generateIcsAttachment($record) {
     $fileName = str_replace(' ', '_', decode_html($record['subject']));
     $assignedUserId = $record['user_id'];
     $userModel = Users_Record_Model::getInstanceById($assignedUserId, 'Users');
-    $firstName = $userModel->entity->column_fields['first_name'];
-    $lastName = $userModel->entity->column_fields['last_name'];
+    $userLabel = $userModel->entity->column_fields['userlabel'];
     $email = $userModel->entity->column_fields['email1'];
     $fp = fopen('test/upload/'.$fileName.'.ics', "w");
     fwrite($fp, "BEGIN:VCALENDAR\nVERSION:2.0\nBEGIN:VEVENT\n");
-    fwrite($fp, "ORGANIZER;CN=".$firstName." ".$lastName.":MAILTO:".$email."\n");
+    fwrite($fp, "ORGANIZER;CN=".$userLabel.":MAILTO:".$email."\n");
     fwrite($fp, "DTSTART:".date('Ymd\THis\Z', strtotime($record['st_date_time']))."\n");
     fwrite($fp, "DTEND:".date('Ymd\THis\Z', strtotime($record['end_date_time']))."\n");
     fwrite($fp, "DTSTAMP:".date('Ymd\THis\Z')."\n");
diff --git a/modules/Calendar/models/Module.php b/modules/Calendar/models/Module.php
index adfd7ed18202e1c4030f2ce14c66174e2ac92f8f..8cccc7648df9028f2234a84b0892c9f6aa4efe10 100644
--- a/modules/Calendar/models/Module.php
+++ b/modules/Calendar/models/Module.php
@@ -305,11 +305,11 @@ class Calendar_Module_Model extends Vtiger_Module_Model {
 		$db = PearDatabase::getInstance();
 		$currentUser = Users_Record_Model::getCurrentUserModel();
 		if($currentUser->isAdminUser()) {
-			$query = "SELECT first_name,last_name, id AS userid
+			$query = "SELECT userlabel, id AS userid
 					FROM vtiger_users WHERE status='Active' AND (user_name != 'admin' OR is_owner = 1) AND id <> ?";
 			$result = $db->pquery($query, array($id));
 		} else {
-			$query = "SELECT vtiger_users.first_name,vtiger_users.last_name, vtiger_users.id AS userid
+			$query = "SELECT vtiger_users.userlabel, vtiger_users.id AS userid
 				FROM vtiger_sharedcalendar RIGHT JOIN vtiger_users ON vtiger_sharedcalendar.userid=vtiger_users.id AND vtiger_users.status= 'Active'
 				WHERE vtiger_sharedcalendar.sharedid=? OR (vtiger_users.status='Active' AND vtiger_users.calendarsharedtype='public' AND vtiger_users.id <> ?)";
 			$result = $db->pquery($query, array($id, $id));
@@ -319,7 +319,7 @@ class Calendar_Module_Model extends Vtiger_Module_Model {
 		$userIds = Array();
 		for($i=0; $i<$rows; $i++){
 			$id = $db->query_result($result,$i,'userid');
-			$userName = $db->query_result($result,$i,'first_name').' '.$db->query_result($result,$i,'last_name');
+			$userName = $db->query_result($result,$i,'userlabel');
 			$userIds[$id] =$userName;
 		}
 
diff --git a/modules/CustomView/CustomView.php b/modules/CustomView/CustomView.php
index d83ac066113a99cbcbbd94cb1029a52b336ddda5..9860ad30079b6287a557bc5dd302dc1c2914dec6 100644
--- a/modules/CustomView/CustomView.php
+++ b/modules/CustomView/CustomView.php
@@ -209,7 +209,7 @@ class CustomView extends CRMEntity {
 		if ($markselected == false)
 			$selected = '';
 
-		$ssql = "select vtiger_customview.*, vtiger_users.first_name,vtiger_users.last_name from vtiger_customview inner join vtiger_tab on vtiger_tab.name = vtiger_customview.entitytype
+		$ssql = "select vtiger_customview.*, vtiger_users.first_name,vtiger_users.last_name,vtiger_users.userlabel from vtiger_customview inner join vtiger_tab on vtiger_tab.name = vtiger_customview.entitytype
 					left join vtiger_users on vtiger_customview.userid = vtiger_users.id ";
 		$ssql .= " where vtiger_tab.tabid=?";
 		$sparams = array($tabid);
@@ -230,7 +230,7 @@ class CustomView extends CRMEntity {
 			if ($cvrow['status'] == CV_STATUS_DEFAULT || $cvrow['userid'] == $current_user->id) {
 				$disp_viewname = $viewname;
 			} else {
-				$userName = getFullNameFromArray('Users', $cvrow);
+				$userName = $cvrow['userlabel'];
 				$disp_viewname = $viewname . " [" . $userName . "] ";
 			}
 
diff --git a/modules/Emails/Emails.php b/modules/Emails/Emails.php
index e05b9fa3d06f81b73e48ef4091a0dd45542e4ec9..1a552f8bd4f992229ba0c9a8c22052adaf5555af 100644
--- a/modules/Emails/Emails.php
+++ b/modules/Emails/Emails.php
@@ -380,7 +380,7 @@ class Emails extends CRMEntity {
 				onclick=\"return window.open("index.php?module=Users&return_module=Emails&action=Popup&popuptype=detailview&select=enable&form=EditView&form_submit=true&return_id=' . $id . '&recordid=' . $id . '","test","width=640,height=520,resizable=0,scrollbars=0");\"
 				type="button">';
 
-		$query = 'SELECT vtiger_users.id, vtiger_users.first_name,vtiger_users.last_name, vtiger_users.user_name, vtiger_users.email1, vtiger_users.email2, vtiger_users.secondaryemail , vtiger_users.phone_home, vtiger_users.phone_work, vtiger_users.phone_mobile, vtiger_users.phone_other, vtiger_users.phone_fax from vtiger_users inner join vtiger_salesmanactivityrel on vtiger_salesmanactivityrel.smid=vtiger_users.id and vtiger_salesmanactivityrel.activityid=?';
+		$query = 'SELECT vtiger_users.id, vtiger_users.first_name,vtiger_users.last_name, vtiger_users.user_name, vtiger_users.email1, vtiger_users.email2, vtiger_users.secondaryemail , vtiger_users.phone_home, vtiger_users.phone_work, vtiger_users.phone_mobile, vtiger_users.phone_other, vtiger_users.phone_fax,vtiger_users.userlabel from vtiger_users inner join vtiger_salesmanactivityrel on vtiger_salesmanactivityrel.smid=vtiger_users.id and vtiger_salesmanactivityrel.activityid=?';
 		$result = $adb->pquery($query, array($id));
 
 		$noofrows = $adb->num_rows($result);
@@ -397,12 +397,7 @@ class Emails extends CRMEntity {
 
 			$entries = Array();
 
-			if (is_admin($current_user)) {
-				$entries[] = getFullNameFromArray('Users', $row);
-			} else {
-				$entries[] = getFullNameFromArray('Users', $row);
-			}
-
+			$entries[] = $row['userlabel'];
 			$entries[] = $row['user_name'];
 			$entries[] = $row['email1'];
 			if ($email == '')
diff --git a/modules/Emails/mail.php b/modules/Emails/mail.php
index 5824fbdb73ad5d59e5b18475d9e3e8e41065c909..58d9f5f6caa9fb1fa612f15e22a12987e3971d9f 100755
--- a/modules/Emails/mail.php
+++ b/modules/Emails/mail.php
@@ -153,11 +153,11 @@ function addSignature($contents, $fromname, $fromEmail = '') {
 	$sign = VTCacheUtils::getUserSignature($fromname);
 	if ($sign == null) {
 		$sign = VTCacheUtils::getUserSignature($fromEmail);
-		$result = $adb->pquery("select signature, first_name, last_name from vtiger_users where user_name=? or user_name=? or email1=? or email2=? or secondaryemail=?", array($fromname, $fromEmail, $fromEmail, $fromEmail, $fromEmail));
+		$result = $adb->pquery("select signature, userlabel from vtiger_users where user_name=? or user_name=? or email1=? or email2=? or secondaryemail=?", array($fromname, $fromEmail, $fromEmail, $fromEmail, $fromEmail));
 		$sign = $adb->query_result($result,0,"signature");
 		VTCacheUtils::setUserSignature($fromname, $sign);
 		VTCacheUtils::setUserSignature($fromEmail, $sign);
-		VTCacheUtils::setUserFullName($fromname, $adb->query_result($result,0,"first_name").' '.$adb->query_result($result,0,"last_name"));
+		VTCacheUtils::setUserFullName($fromname, $adb->query_result($result,0,"userlabel"));
 	}
 
 	$sign = nl2br($sign);
@@ -215,10 +215,10 @@ function setMailerProperties($mail,$subject,$contents,$from_email,$from_name,$to
 		$userFullName = $HELPDESK_SUPPORT_NAME;
 	}
 	if(empty($userFullName)) {
-		$rs = $adb->pquery("select first_name,last_name from vtiger_users where user_name=?", array($from_name));
+		$rs = $adb->pquery("select first_name,last_name,userlabel from vtiger_users where user_name=?", array($from_name));
 		$num_rows = $adb->num_rows($rs);
 		if($num_rows > 0) {
-			$fullName = getFullNameFromQResult($rs, 0, 'Users');
+			$fullName = $adb->query_result($rs, 0, 'userlabel');
 			VTCacheUtils::setUserFullName($from_name, $fullName);
 		}
 	} else {
diff --git a/modules/HelpDesk/models/Module.php b/modules/HelpDesk/models/Module.php
index e0b2c4acfad56cf225365c626216287bdc157833..1ba6037196d9b5a81ad68c5043a48a6e8e6ffd23 100644
--- a/modules/HelpDesk/models/Module.php
+++ b/modules/HelpDesk/models/Module.php
@@ -69,7 +69,7 @@ class HelpDesk_Module_Model extends Vtiger_Module_Model {
         if(in_array('Open', $picklistvaluesmap)) $params[] = 'Open';
         
 		if(count($params) > 0) {
-		$result = $db->pquery('SELECT count(*) AS count, COALESCE(vtiger_groups.groupname,concat(vtiger_users.first_name, " " ,vtiger_users.last_name)) as name, COALESCE(vtiger_groups.groupid,vtiger_users.id) as id  FROM vtiger_troubletickets
+		$result = $db->pquery('SELECT count(*) AS count, COALESCE(vtiger_groups.groupname,vtiger_users.userlabel) as name, COALESCE(vtiger_groups.groupid,vtiger_users.id) as id  FROM vtiger_troubletickets
 						INNER JOIN vtiger_crmentity ON vtiger_troubletickets.ticketid = vtiger_crmentity.crmid
 						LEFT JOIN vtiger_users ON vtiger_users.id=vtiger_crmentity.smownerid AND vtiger_users.status="ACTIVE"
 						LEFT JOIN vtiger_groups ON vtiger_groups.groupid=vtiger_crmentity.smownerid
diff --git a/modules/Migration/schema/730_to_740.php b/modules/Migration/schema/730_to_740.php
index 4a0b367a12b62922088f3911c1674f10a3d68010..563270f25458b9dc5dc5404179556b6a343608e6 100644
--- a/modules/Migration/schema/730_to_740.php
+++ b/modules/Migration/schema/730_to_740.php
@@ -16,4 +16,36 @@ if (defined('VTIGER_UPGRADE')) {
     $className = 'Vtiger_RecordLabelUpdater_Handler';
     $eventManager->unregisterHandler($className);
     echo "Unregistered record label update handler.<br>";
+
+    $moduleName = 'Users';
+    $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
+    $fieldName = 'userlabel';
+    $blockModel = Vtiger_Block_Model::getInstance('LBL_MORE_INFORMATION', $moduleModel);
+    if ($blockModel) {
+        $fieldModel = Vtiger_Field_Model::getInstance($fieldName, $moduleModel);
+        if (!$fieldModel) {
+            $fieldModel				= new Vtiger_Field();
+            $fieldModel->name		= $fieldName;
+            $fieldModel->label		= 'User Label';
+            $fieldModel->table		= 'vtiger_users';
+            $fieldModel->columntype = 'VARCHAR(255)';
+            $fieldModel->typeofdata = 'V~O';
+            $fieldModel->displaytype= 3;
+            $blockModel->addField($fieldModel);
+            echo "<br>Successfully added <b>$fieldName</b> field to <b>$moduleName</b><br>";
+        }
+    }
+    $db->pquery("UPDATE vtiger_users SET $fieldName=TRIM(CONCAT(first_name, ' ' , last_name))", array());
+    echo "<br>Successfully updated <b>$fieldName</b> value as concatenate of firstname and lastname for <b>$moduleName</b> module<br>";
+
+    vimport('~modules/Users/CreateUserPrivilegeFile.php');
+    $result = $db->pquery('SELECT id FROM vtiger_users', array());
+    $count = $db->num_rows($result);
+    while ($row = $db->fetch_array($result)) {
+        $userId = $row['id'];
+        createUserPrivilegesfile($userId);
+        echo "<br>Successfully recreated <b>User's privileges</b> file for id:<b>$userId</b><br>";
+    }
+    echo "<br>Successfully completed concatenate of firstname and lastname as label in <b>$moduleName</b> module<br>";
+
 }
\ No newline at end of file
diff --git a/modules/Potentials/models/Module.php b/modules/Potentials/models/Module.php
index bb6a9a7a342bc4e0214120d1085187c3424dc2b7..cc90a4899688ce31c7bac35925c3c5cfd84a7231 100644
--- a/modules/Potentials/models/Module.php
+++ b/modules/Potentials/models/Module.php
@@ -99,7 +99,7 @@ class Potentials_Module_Model extends Vtiger_Module_Model {
             $params[] = $picklistValue;
         }
         
-		$result = $db->pquery('SELECT COUNT(*) AS count, concat(first_name," ",last_name) as last_name, vtiger_potential.sales_stage, vtiger_groups.groupname FROM vtiger_potential
+		$result = $db->pquery('SELECT COUNT(*) AS count, vtiger_users.userlabel as last_name, vtiger_potential.sales_stage, vtiger_groups.groupname FROM vtiger_potential
 						INNER JOIN vtiger_crmentity ON vtiger_potential.potentialid = vtiger_crmentity.crmid AND vtiger_crmentity.deleted = 0
 						LEFT JOIN vtiger_users ON vtiger_users.id=vtiger_crmentity.smownerid AND vtiger_users.status="ACTIVE"
 						LEFT JOIN vtiger_groups ON vtiger_groups.groupid=vtiger_crmentity.smownerid'.Users_Privileges_Model::getNonAdminAccessControlQuery($this->getName()).'
@@ -134,7 +134,7 @@ class Potentials_Module_Model extends Vtiger_Module_Model {
         unset($picklistvaluesmap['Closed Won']);unset($picklistvaluesmap['Closed Lost']);
         foreach($picklistvaluesmap as $picklistValue) $params[] = $picklistValue;
         
-		$result = $db->pquery('SELECT sum(amount) AS amount, concat(first_name," ",last_name) as last_name, vtiger_potential.sales_stage FROM vtiger_potential
+		$result = $db->pquery('SELECT sum(amount) AS amount, vtiger_users.userlabel as last_name, vtiger_potential.sales_stage FROM vtiger_potential
 						INNER JOIN vtiger_crmentity ON vtiger_potential.potentialid = vtiger_crmentity.crmid
 						INNER JOIN vtiger_users ON vtiger_users.id=vtiger_crmentity.smownerid AND vtiger_users.status="ACTIVE"
 						AND vtiger_crmentity.deleted = 0 '.Users_Privileges_Model::getNonAdminAccessControlQuery($this->getName()).
@@ -168,7 +168,7 @@ class Potentials_Module_Model extends Vtiger_Module_Model {
 			$params[] = $dateFilter['end'];
 		}
 		
-		$result = $db->pquery('SELECT sum(amount) amount, concat(first_name," ",last_name) as last_name,vtiger_users.id as id,DATE_FORMAT(closingdate, "%d-%m-%Y") AS closingdate  FROM vtiger_potential
+		$result = $db->pquery('SELECT sum(amount) amount, vtiger_users.userlabel as last_name,vtiger_users.id as id,DATE_FORMAT(closingdate, "%d-%m-%Y") AS closingdate  FROM vtiger_potential
 						INNER JOIN vtiger_crmentity ON vtiger_potential.potentialid = vtiger_crmentity.crmid
 						INNER JOIN vtiger_users ON vtiger_users.id=vtiger_crmentity.smownerid AND vtiger_users.status="ACTIVE"
 						AND vtiger_crmentity.deleted = 0 '.Users_Privileges_Model::getNonAdminAccessControlQuery($this->getName()).'WHERE sales_stage = ? '.' '.$dateFilterSql.' GROUP BY smownerid', $params);
diff --git a/modules/Reports/models/ListView.php b/modules/Reports/models/ListView.php
index 6bcfb4aef0abeabc226c08002aec6f21fb3480e4..f1557fa0032d361a25aafc5ea5edd4ae8e58b2b6 100644
--- a/modules/Reports/models/ListView.php
+++ b/modules/Reports/models/ListView.php
@@ -100,7 +100,7 @@ class Reports_ListView_Model extends Vtiger_ListView_Model {
 		if (!empty($orderBy) && $orderBy === 'smownerid') {
 			$fieldModel = Vtiger_Field_Model::getInstance('assigned_user_id', $moduleModel);
 			if ($fieldModel->getFieldDataType() == 'owner') {
-				$orderBy = 'COALESCE(CONCAT(vtiger_users.first_name,vtiger_users.last_name),vtiger_groups.groupname)';
+				$orderBy = 'COALESCE(vtiger_users.userlabel,vtiger_groups.groupname)';
 			}
 		}
 		if(!empty($orderBy)) {
diff --git a/modules/Settings/Groups/models/Member.php b/modules/Settings/Groups/models/Member.php
index bcc72c1e075e9e9b42f71449a280fe804155af6a..9a3dc90fe1a25c4b917d2d87bfbc6c0c2e83a8ce 100644
--- a/modules/Settings/Groups/models/Member.php
+++ b/modules/Settings/Groups/models/Member.php
@@ -102,7 +102,7 @@ class Settings_Groups_Member_Model extends Vtiger_Base_Model {
             $tableName = $tables[self::MEMBER_TYPE_USERS]['table'];
             $tableIndex = $tables[self::MEMBER_TYPE_USERS]['index'];
             $refIndex = $tables[self::MEMBER_TYPE_USERS]['refIndex'];
-			$sql = "SELECT vtiger_users.id, vtiger_users.last_name, vtiger_users.first_name FROM vtiger_users
+			$sql = "SELECT vtiger_users.id, vtiger_users.last_name, vtiger_users.first_name, vtiger_users.userlabel FROM vtiger_users
 							INNER JOIN $tableName ON $tableName.$refIndex = vtiger_users.id
 							WHERE $tableName.$tableIndex = ?";
 			$params = array($groupModel->getId());
@@ -113,7 +113,7 @@ class Settings_Groups_Member_Model extends Vtiger_Base_Model {
 				$row = $db->query_result_rowdata($result, $i);
 				$userId = $row['id'];
 				$qualifiedId = self::getQualifiedId(self::MEMBER_TYPE_USERS, $userId);
-				$name = getFullNameFromArray('Users', $row);
+				$name = $row['userlabel'];
 				$member = new self();
 				$members[$qualifiedId] = $member->set('id', $qualifiedId)->set('name', $name)->set('userId', $userId);
 			}
diff --git a/modules/Settings/Vtiger/models/ListView.php b/modules/Settings/Vtiger/models/ListView.php
index 1e944f10c12bcfb9408ad44043befb162c0daa67..0ffe2428a446c98ec83432c24afc95a06a60557b 100644
--- a/modules/Settings/Vtiger/models/ListView.php
+++ b/modules/Settings/Vtiger/models/ListView.php
@@ -72,7 +72,7 @@ class Settings_Vtiger_ListView_Model extends Vtiger_Base_Model {
 		if (!empty($orderBy) && $orderBy === 'smownerid') { 
 			$fieldModel = Vtiger_Field_Model::getInstance('assigned_user_id', $moduleModel); 
 			if ($fieldModel->getFieldDataType() == 'owner') { 
-				$orderBy = 'COALESCE(CONCAT(vtiger_users.first_name,vtiger_users.last_name),vtiger_groups.groupname)'; 
+				$orderBy = 'COALESCE(vtiger_users.userlabel,vtiger_groups.groupname)'; 
 			} 
 		}
 		if (!empty($orderBy)) {
diff --git a/modules/Users/Users.php b/modules/Users/Users.php
index 6c024b967b63c8567bdb775120487fdcf970f5f1..232ad18e8d0ad3a9826d1db9896dd17ccc87d7cd 100755
--- a/modules/Users/Users.php
+++ b/modules/Users/Users.php
@@ -112,7 +112,7 @@ class Users extends CRMEntity {
 	);
 
 	//Default Fields for Email Templates -- Pavani
-	var $emailTemplate_defaultFields = array('first_name','last_name','title','department','phone_home','phone_mobile','signature','email1','email2','address_street','address_city','address_state','address_country','address_postalcode');
+	var $emailTemplate_defaultFields = array('first_name','last_name','userlabel','title','department','phone_home','phone_mobile','signature','email1','email2','address_street','address_city','address_state','address_country','address_postalcode');
 
 	var $popup_fields = array('last_name');
 
@@ -621,14 +621,14 @@ class Users extends CRMEntity {
 	}
 
 	function fill_in_additional_detail_fields() {
-		$query = "SELECT u1.first_name, u1.last_name from vtiger_users u1, vtiger_users u2 where u1.id = u2.reports_to_id AND u2.id = ? and u1.deleted=0";
+		$query = "SELECT u1.first_name, u1.last_name, u1.userlabel from vtiger_users u1, vtiger_users u2 where u1.id = u2.reports_to_id AND u2.id = ? and u1.deleted=0";
 		$result =$this->db->pquery($query, array($this->id), true, "Error filling in additional detail vtiger_fields") ;
 
 		$row = $this->db->fetchByAssoc($result);
 		$this->log->debug("additional detail query results: $row");
 
 		if($row != null) {
-			$this->reports_to_name = stripslashes(getFullNameFromArray('Users', $row));
+			$this->reports_to_name = stripslashes($row['userlabel']);
 		}
 		else {
 			$this->reports_to_name = '';
@@ -768,6 +768,20 @@ class Users extends CRMEntity {
 		// We will set the crypt_type based on the insertion_mode
 		$crypt_type = '';
 
+		// userlabel is a field. So, setting to column_fields will take care for update and insert as well
+        if($table_name == 'vtiger_users') {
+			$entityFields = Vtiger_Functions::getEntityModuleInfo($module);
+			$entityFieldNames  = explode(',', $entityFields['fieldname']);
+
+			$userlabel = '';
+			foreach($entityFieldNames as $entityFieldName) {
+				$userlabel .= $this->column_fields[$entityFieldName]." ";
+			}
+			$userlabel = trim(decode_html($userlabel));
+			
+			$this->column_fields['userlabel'] = strip_tags($userlabel);
+		}
+
 		if($insertion_mode == 'edit') {
 			$update = '';
 			$update_params = array();
@@ -1795,7 +1809,7 @@ class Users extends CRMEntity {
 						$reportsTo = null;
 						foreach($allUsers as $user) {
 							$userName = strtolower($user->get('user_name'));
-							$firstLastName = strtolower($user->get('first_name')." ".$user->get('last_name'));
+							$firstLastName = strtolower($user->get('userlabel'));
 							if(strtolower($fieldValue) == $userName || strtolower($fieldValue) == $firstLastName) {
 								$reportsTo = $user->getId();
 								break;
diff --git a/modules/Users/models/Module.php b/modules/Users/models/Module.php
index f875d3c5024d4feae09f2bc8367c9c485e341ed7..617a61528071c3173798b1f187304d45ea501a34 100644
--- a/modules/Users/models/Module.php
+++ b/modules/Users/models/Module.php
@@ -46,7 +46,7 @@ class Users_Module_Model extends Vtiger_Module_Model {
 		if(!empty($searchValue)) {
 			$db = PearDatabase::getInstance();
 
-			$query = 'SELECT * FROM vtiger_users WHERE (first_name LIKE ? OR last_name LIKE ?) AND status = ?';
+			$query = 'SELECT * FROM vtiger_users WHERE userlabel LIKE ? AND status = ?';
 			$currentUser = Users_Record_Model::getCurrentUserModel();
 			$allSubordinates = $currentUser->getAllSubordinatesByReportsToField($currentUser->getId());
 			$params = array("%$searchValue%", "%$searchValue%", 'Active');
diff --git a/modules/Users/models/Record.php b/modules/Users/models/Record.php
index 206b8aac48a07bbea5c097cb9049585292f4e989..b6a0c43c692bcef3638059411d8c76c9ad1e9a3b 100644
--- a/modules/Users/models/Record.php
+++ b/modules/Users/models/Record.php
@@ -275,7 +275,7 @@ class Users_Record_Model extends Vtiger_Record_Model {
 		if($subordinateRoleUsers) {
 			foreach($subordinateRoleUsers as $role=>$users) {
 				foreach($users as $user) {
-					$subordinateUsers[$user] = $privilegesModel->get('first_name').' '.$privilegesModel->get('last_name');
+					$subordinateUsers[$user] = $privilegesModel->get('userlabel');
 				}
 			}
 		}
@@ -458,7 +458,7 @@ class Users_Record_Model extends Vtiger_Record_Model {
 		$currentUserRoleModel = Settings_Roles_Record_Model::getInstanceById($this->getRole());
 		$childernRoles = $currentUserRoleModel->getAllChildren();
 		$users = $this->getAllUsersOnRoles($childernRoles);
-        $currentUserDetail = array($this->getId() => $this->get('first_name').' '.$this->get('last_name'));
+        $currentUserDetail = array($this->getId() => $this->get('userlabel'));
         $users = $currentUserDetail + $users;
         return $users;
 	}
@@ -488,14 +488,12 @@ class Users_Record_Model extends Vtiger_Record_Model {
 			for($i=0; $i<$noOfUsers; ++$i) {
 				$userIds[] = $db->query_result($result, $i, 'userid');
 			}
-			$query = 'SELECT id, first_name, last_name FROM vtiger_users WHERE status = ? AND id IN ('.  generateQuestionMarks($userIds).')';
+			$query = 'SELECT id, userlabel FROM vtiger_users WHERE status = ? AND id IN ('.  generateQuestionMarks($userIds).')';
 			$result = $db->pquery($query, array('ACTIVE', $userIds));
 			$noOfUsers = $db->num_rows($result);
 			for($j=0; $j<$noOfUsers; ++$j) {
 				$userId = $db->query_result($result, $j,'id');
-				$firstName = $db->query_result($result, $j, 'first_name');
-				$lastName = $db->query_result($result, $j, 'last_name');
-				$subUsers[$userId] = $firstName .' '.$lastName;
+				$subUsers[$userId] = $db->query_result($result, $j, 'userlabel');
 			}
 		}
 		return $subUsers;
@@ -807,7 +805,12 @@ class Users_Record_Model extends Vtiger_Record_Model {
 	 * @return <String> - Entity Display Name for the record
 	 */
 	public function getDisplayName() {
-		return getFullNameFromArray($this->getModuleName(),$this->getData());
+		$userLabel = $this->get('userlabel');
+
+		if (!$userLabel) {
+			$userLabel = getFullNameFromArray($this->getModuleName(),$this->getData());
+		}
+		return $userLabel;
 	}
 
 	/**
diff --git a/modules/Vtiger/models/RelationListView.php b/modules/Vtiger/models/RelationListView.php
index 74e829bec76437437709147fcc5797b477078712..d09fc9d2853a600a919452a2aba974deb8cad382 100644
--- a/modules/Vtiger/models/RelationListView.php
+++ b/modules/Vtiger/models/RelationListView.php
@@ -318,7 +318,7 @@ class Vtiger_RelationListView_Model extends Vtiger_Base_Model {
 				$query = $selectAndFromClause.' WHERE '.$whereCondition;
 				$query .= ' ORDER BY '.$qualifiedOrderBy.'.label '.$sortOrder;
 			} elseif($orderByFieldModuleModel && $orderByFieldModuleModel->isOwnerField()) {
-				 $query .= ' ORDER BY COALESCE(CONCAT(vtiger_users.first_name,vtiger_users.last_name),vtiger_groups.groupname) '.$sortOrder;
+				 $query .= ' ORDER BY COALESCE(vtiger_users.userlabel,vtiger_groups.groupname) '.$sortOrder;
 			} else{
 				// Qualify the the column name with table to remove ambugity
 				$qualifiedOrderBy = $orderBy;
diff --git a/modules/Vtiger/uitypes/Reference.php b/modules/Vtiger/uitypes/Reference.php
index 3ac8f7e77494f1eaa18a0ebd3a7cb288fbdc94a7..2769a45538a146f81e2e7e45f613f42c03e5a84f 100644
--- a/modules/Vtiger/uitypes/Reference.php
+++ b/modules/Vtiger/uitypes/Reference.php
@@ -46,9 +46,9 @@ class Vtiger_Reference_UIType extends Vtiger_Base_UIType {
 			$referenceModuleName = $referenceModule->get('name');
 			if($referenceModuleName == 'Users') {
 				$db = PearDatabase::getInstance();
-				$nameResult = $db->pquery('SELECT first_name, last_name FROM vtiger_users WHERE id = ?', array($value));
+				$nameResult = $db->pquery('SELECT userlabel FROM vtiger_users WHERE id = ?', array($value));
 				if($db->num_rows($nameResult)) {
-					return $db->query_result($nameResult, 0, 'first_name').' '.$db->query_result($nameResult, 0, 'last_name');
+					return $db->query_result($nameResult, 0, 'userlabel');
 				}
 			} else {
 				$fieldModel = $this->get('field');
diff --git a/modules/com_vtiger_workflow/tasks/VTEmailTask.inc b/modules/com_vtiger_workflow/tasks/VTEmailTask.inc
index cc8b6eb5c4b5d4ed82535567b95ce06a9f7798c1..ff514b2d511ccbd9d30b73cb7963246241db00a1 100644
--- a/modules/com_vtiger_workflow/tasks/VTEmailTask.inc
+++ b/modules/com_vtiger_workflow/tasks/VTEmailTask.inc
@@ -256,11 +256,11 @@ class VTEmailTask extends VTTask{
 			} else {
 				if ($userObj) {
 					$fromEmail = $userObj->email1;
-					$fromName =	trim($userObj->first_name.' '.$userObj->last_name);
+					$fromName =	$userObj->userlabel;
 				} else {
 					$fromEmail = $this->getDefaultFromEmail();
 					$userObj = Users::getActiveAdminUser();
-					$fromName =	trim($userObj->first_name.' '.$userObj->last_name);
+					$fromName =	$userObj->userlabel;
 				}
 			}
 
diff --git a/pkg/vtiger/modules/Import/modules/Import/actions/Data.php b/pkg/vtiger/modules/Import/modules/Import/actions/Data.php
index 5e0e36a0965a1fb656cef858d5b7f9335295c0cc..718a828e58dbebadeb1cd1ca03c32269412baf74 100644
--- a/pkg/vtiger/modules/Import/modules/Import/actions/Data.php
+++ b/pkg/vtiger/modules/Import/modules/Import/actions/Data.php
@@ -896,7 +896,7 @@ class Import_Data_Action extends Vtiger_Action_Controller {
 
                         $emailData = getTranslatedString('LBL_IMPORT_COMPLETED', 'Import').' '.$importResult.getTranslatedString('LBL_CHECK_IMPORT_STATUS', 'Import');
 
-			$userName = getFullNameFromArray('Users', $importDataController->user->column_fields);
+			$userName = $importDataController->user->column_fields['userlabel'];
 			$userEmail = $importDataController->user->email1;
 			$vtigerMailer->AddAddress($userEmail, $userName);
 			$vtigerMailer->Subject = $emailSubject;
diff --git a/pkg/vtiger/modules/MailManager/modules/MailManager/views/Mail.php b/pkg/vtiger/modules/MailManager/modules/MailManager/views/Mail.php
index 7d03ebff4cc62ac61393f14a575f7c473c66ece4..996f53ff1c8b3498fd3e8c385922d2c325ea877c 100755
--- a/pkg/vtiger/modules/MailManager/modules/MailManager/views/Mail.php
+++ b/pkg/vtiger/modules/MailManager/modules/MailManager/views/Mail.php
@@ -164,7 +164,7 @@ class MailManager_Mail_View extends MailManager_Abstract_View {
 					}
 
 					$fromEmail = $connector->getFromEmailAddress();
-					$userFullName = getFullNameFromArray('Users', $currentUserModel->getData());
+					$userFullName = $currentUserModel->get('userlabel');
 					$userId = $currentUserModel->getId();
 
 					$mailer = new Vtiger_Mailer();
diff --git a/pkg/vtiger/modules/Mobile/modules/Mobile/api/ws/FetchModuleOwners.php b/pkg/vtiger/modules/Mobile/modules/Mobile/api/ws/FetchModuleOwners.php
index 381a9b41863e5942271a87d1784f181db25cc993..2d0a8800087eff2124af6fb19f5be2d19c3cc9a0 100644
--- a/pkg/vtiger/modules/Mobile/modules/Mobile/api/ws/FetchModuleOwners.php
+++ b/pkg/vtiger/modules/Mobile/modules/Mobile/api/ws/FetchModuleOwners.php
@@ -38,7 +38,7 @@ class Mobile_WS_FetchModuleOwners extends Mobile_WS_Controller {
             $userRecord = Users_Record_Model::getInstanceById($userId, 'Users');
             $usersList[] = array(
                 'value' => $usersWSId . 'x' . $userId,
-                'label' => decode_html($userRecord->get("first_name") . ' ' . $userRecord->get('last_name'))
+                'label' => decode_html($userRecord->get("userlabel"))
             );
         }
         return $usersList;
diff --git a/vtlib/Vtiger/Deprecated.php b/vtlib/Vtiger/Deprecated.php
index 7a5288679a7f44f0d6ea6841a1b72423e20746a9..a23a02a49264d560d6463a3ed1bdcad09cc63cb6 100644
--- a/vtlib/Vtiger/Deprecated.php
+++ b/vtlib/Vtiger/Deprecated.php
@@ -544,6 +544,23 @@ class Vtiger_Deprecated {
 	}
 
 	static function getSqlForNameInDisplayFormat($input, $module, $glue = ' ') {
+		if ($module == 'Users') {
+			if (is_string($input)) {
+				$input = array($input);
+			}
+
+			$tableName = '';
+			foreach ($input as $fieldTableColumn) {
+				if ($fieldTableColumn) {
+					list($tableName, $columnName) = explode('.', $fieldTableColumn);
+					break;
+				}
+			}
+			if ($tableName) {
+				return "$tableName.userlabel";
+			}
+		}
+
 		$entity_field_info = Vtiger_Functions::getEntityModuleInfoFieldsFormatted($module);
 		$fieldsName = $entity_field_info['fieldname'];
 		if(is_array($fieldsName)) {