diff --git a/include/ListView/ListViewController.php b/include/ListView/ListViewController.php
index 586bed54f5d6529fabcfa1c7d8ddcae66f0fccc3..01de408f8886c2cdc3ff261eaf89dc8fcf2700de 100644
--- a/include/ListView/ListViewController.php
+++ b/include/ListView/ListViewController.php
@@ -438,7 +438,6 @@ class ListViewController {
 				} elseif($field->getUIType() == 98) {
 					$value = '<a href="index.php?module=Roles&parent=Settings&view=Edit&record='.$value.'">'.textlength_check(getRoleName($value)).'</a>';
 				} elseif($fieldDataType == 'multipicklist') {
-					$value = ($value != "") ? str_replace(' |##| ',', ',$value) : "";
 					if(!$is_admin && $value != '') {
 						$valueArray = ($rawValue != "") ? explode(' |##| ',$rawValue) : array();
 						$notaccess = '<font color="red">'.getTranslatedString('LBL_NOT_ACCESSIBLE',
@@ -465,6 +464,14 @@ class ListViewController {
 						}
 						$value = implode(', ', $tmpArray);
 						$value = textlength_check($value);
+					} else if ($value != '') {
+						$moduleName = getTabModuleName($field->getTabId());
+						$value = explode(' |##| ', $value);
+						foreach ($value as $key => $val) {
+							$value[$key] = vtranslate($val, $moduleName);
+						}
+						$value = implode(' |##| ', $value);
+						$value = str_replace(' |##| ', ', ', $value);
 					}
 				} elseif ($fieldDataType == 'skype') {
 					$value = ($value != "") ? "<a href='skype:$value?call'>".textlength_check($value)."</a>" : "";
diff --git a/layouts/v7/modules/Vtiger/ListViewContents.tpl b/layouts/v7/modules/Vtiger/ListViewContents.tpl
index 978fc88627a18c4d16398fa312ea6aed9ae158a7..4a89cd1a97b0c9dcb87faa91c6b99e697f3acd51 100644
--- a/layouts/v7/modules/Vtiger/ListViewContents.tpl
+++ b/layouts/v7/modules/Vtiger/ListViewContents.tpl
@@ -194,8 +194,9 @@
 										{else if $LISTVIEW_HEADER->getFieldDataType() eq 'multipicklist'}
 											{assign var=MULTI_RAW_PICKLIST_VALUES value=explode('|##|',$LISTVIEW_ENTRY->getRaw($LISTVIEW_HEADERNAME))}
 											{assign var=MULTI_PICKLIST_VALUES value=explode(',',$LISTVIEW_ENTRY_VALUE)}
+											{assign var=ALL_MULTI_PICKLIST_VALUES value=array_flip($LISTVIEW_HEADER->getPicklistValues())}
 											{foreach item=MULTI_PICKLIST_VALUE key=MULTI_PICKLIST_INDEX from=$MULTI_PICKLIST_VALUES}
-												<span {if !empty($LISTVIEW_ENTRY_VALUE)} class="picklist-color picklist-{$LISTVIEW_HEADER->getId()}-{Vtiger_Util_Helper::convertSpaceToHyphen(trim($MULTI_PICKLIST_VALUE))}"{/if} > 
+												<span {if !empty($LISTVIEW_ENTRY_VALUE)} class="picklist-color picklist-{$LISTVIEW_HEADER->getId()}-{Vtiger_Util_Helper::convertSpaceToHyphen(trim($ALL_MULTI_PICKLIST_VALUES[trim($MULTI_PICKLIST_VALUE)]))}"{/if} > 
 													{if trim($MULTI_PICKLIST_VALUES[$MULTI_PICKLIST_INDEX]) eq vtranslate('LBL_NOT_ACCESSIBLE', $MODULE)} 
 														<font color="red"> 
 														{trim($MULTI_PICKLIST_VALUES[$MULTI_PICKLIST_INDEX])} 
diff --git a/layouts/v7/modules/Vtiger/uitypes/MultiPicklist.tpl b/layouts/v7/modules/Vtiger/uitypes/MultiPicklist.tpl
index d76f4b2aa478e0d8fdb8001d3e4cdf56e60caf13..c9a94e8cb30718ac714a7d476e722f4afe3815c6 100644
--- a/layouts/v7/modules/Vtiger/uitypes/MultiPicklist.tpl
+++ b/layouts/v7/modules/Vtiger/uitypes/MultiPicklist.tpl
@@ -10,19 +10,31 @@
  ********************************************************************************/
 -->*}
 {strip}
-{assign var=PICKLIST_VALUES value=$FIELD_MODEL->getPicklistValues()}
-{assign var="FIELD_INFO" value=$FIELD_MODEL->getFieldInfo()}
-{assign var="SPECIAL_VALIDATOR" value=$FIELD_MODEL->getValidator()}
-{assign var="FIELD_VALUE_LIST" value=explode(' |##| ',$FIELD_MODEL->get('fieldvalue'))}
-<input type="hidden" name="{$FIELD_MODEL->getFieldName()}" value=""  data-fieldtype="multipicklist"/>
-<select id="{$MODULE}_{$smarty.request.view}_fieldName_{$FIELD_MODEL->getFieldName()}" multiple class="select2" name="{$FIELD_MODEL->getFieldName()}[]" data-fieldtype="multipicklist" style='width:210px;height:30px;' 
-        {if $FIELD_INFO["mandatory"] eq true} data-rule-required="true" {/if}
-        {if count($FIELD_INFO['validator'])} 
-            data-specific-rules='{ZEND_JSON::encode($FIELD_INFO["validator"])}'
-        {/if}
-        >
-    {foreach item=PICKLIST_VALUE from=$PICKLIST_VALUES}
-        <option value="{Vtiger_Util_Helper::toSafeHTML($PICKLIST_VALUE)}" {if in_array(Vtiger_Util_Helper::toSafeHTML($PICKLIST_VALUE), $FIELD_VALUE_LIST)} selected {/if}>{vtranslate($PICKLIST_VALUE, $MODULE)}</option>
-    {/foreach}
-</select>
+	{assign var=PICKLIST_VALUES value=$FIELD_MODEL->getPicklistValues()}
+	{assign var="FIELD_INFO" value=$FIELD_MODEL->getFieldInfo()}
+	{assign var="SPECIAL_VALIDATOR" value=$FIELD_MODEL->getValidator()}
+	{assign var="FIELD_VALUE_LIST" value=explode(' |##| ',$FIELD_MODEL->get('fieldvalue'))}
+	{assign var=PICKLIST_COLORS value=$FIELD_MODEL->getPicklistColors()}
+	<input type="hidden" name="{$FIELD_MODEL->getFieldName()}" value=""  data-fieldtype="multipicklist"/>
+	<select id="{$MODULE}_{$smarty.request.view}_fieldName_{$FIELD_MODEL->getFieldName()}" multiple class="select2" name="{$FIELD_MODEL->getFieldName()}[]" data-fieldtype="multipicklist" style='width:210px;height:30px;' 
+			{if $FIELD_INFO["mandatory"] eq true} data-rule-required="true" {/if}
+			{if count($FIELD_INFO['validator'])} 
+				data-specific-rules='{ZEND_JSON::encode($FIELD_INFO["validator"])}'
+			{/if}
+			>
+		{foreach item=PICKLIST_VALUE key=PICKLIST_NAME from=$PICKLIST_VALUES}
+			{assign var=CLASS_NAME value="picklistColor_{$FIELD_MODEL->getFieldName()}_{$PICKLIST_NAME|replace:' ':'_'}"}
+			<option value="{Vtiger_Util_Helper::toSafeHTML($PICKLIST_NAME)}" {if $PICKLIST_COLORS[$PICKLIST_NAME]}class="{$CLASS_NAME}"{/if} {if in_array(Vtiger_Util_Helper::toSafeHTML($PICKLIST_NAME), $FIELD_VALUE_LIST)} selected {/if}>{vtranslate($PICKLIST_VALUE, $MODULE)}</option>
+		{/foreach}
+	</select>
+	{if $PICKLIST_COLORS}
+		<style type="text/css">
+			{foreach item=PICKLIST_VALUE key=PICKLIST_NAME from=$PICKLIST_VALUES}
+			{assign var=CLASS_NAME value="{$FIELD_MODEL->getFieldName()}_{$PICKLIST_NAME|replace:' ':'_'}"}
+			.picklistColor_{$CLASS_NAME} {
+				background-color: {$PICKLIST_COLORS[$PICKLIST_NAME]} !important;
+			}
+			{/foreach}
+		</style>
+	{/if}
 {/strip}
\ No newline at end of file
diff --git a/modules/Vtiger/models/Record.php b/modules/Vtiger/models/Record.php
index bfb75dd9d73229181bd51924f53317845c83113f..be7e4fc2b40d5de8f280393dd34150934f51fd43 100644
--- a/modules/Vtiger/models/Record.php
+++ b/modules/Vtiger/models/Record.php
@@ -629,8 +629,7 @@ class Vtiger_Record_Model extends Vtiger_Base_Model {
 				}
 			}
 			if($dataType == 'multipicklist') {
-				$values = explode('|##|', $rawValue);
-				$rawValue = implode(',', array_map('vtranslate',$values));
+				$rawValue = $fieldInstance->getDisplayValue($rawValue);
 			}
 		}
 		return $rawValue;
diff --git a/modules/Vtiger/uitypes/Multipicklist.php b/modules/Vtiger/uitypes/Multipicklist.php
index 8805a2cb018a57ce63223a8a41514fb5ea30c622..83b4527c298631c14ca5f29758fefc27b6788cc2 100644
--- a/modules/Vtiger/uitypes/Multipicklist.php
+++ b/modules/Vtiger/uitypes/Multipicklist.php
@@ -24,7 +24,14 @@ class Vtiger_Multipicklist_UIType extends Vtiger_Base_UIType {
 	 * @return <Object>
 	 */
 	public function getDisplayValue($value) {
-        if(is_array($value)){
+
+		$moduleName = $this->get('field')->getModuleName();
+		$value = explode(' |##| ', $value);
+		foreach ($value as $key => $val) {
+			$value[$key] = vtranslate($val, $moduleName);
+		}
+
+		if(is_array($value)){
             $value = implode(' |##| ', $value);
         }
 		return str_ireplace(' |##| ', ', ', $value);