diff --git a/src/org/openbravo/base/structure/IdentifierProvider.java b/src/org/openbravo/base/structure/IdentifierProvider.java
--- a/src/org/openbravo/base/structure/IdentifierProvider.java
+++ b/src/org/openbravo/base/structure/IdentifierProvider.java
@@ -20,17 +20,24 @@
 package org.openbravo.base.structure;
 
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.model.Entity;
 import org.openbravo.base.model.ModelProvider;
 import org.openbravo.base.model.Property;
+import org.openbravo.base.model.Reference;
 import org.openbravo.base.provider.OBProvider;
 import org.openbravo.base.provider.OBSingleton;
 import org.openbravo.base.session.OBPropertiesProvider;
 import org.openbravo.dal.core.DalUtil;
 import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBCriteria;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.dal.service.OBQuery;
+import org.openbravo.model.ad.domain.ListTrl;
 import org.openbravo.model.ad.system.Language;
 
 /**
@@ -141,6 +148,8 @@
         } else {
           value = "";
         }
+      } else if (isListProperty(property)) {
+        value = getNameForListValue(property, (String) dob.get(identifier.getName()));
       } else {
         value = dob.get(identifier.getName());
       }
@@ -169,6 +178,65 @@
     return SEPARATOR;
   }
 
+  private boolean isListProperty(Property property) {
+    final String listReferenceId = "17";
+    Reference reference = property.getDomainType().getReference();
+    if (reference == null) {
+      return false;
+    }
+    Reference parentReference = reference.getParentReference();
+    if (parentReference == null) {
+      return false;
+    }
+    return listReferenceId.equals(parentReference.getId());
+  }
+
+  private String getNameForListValue(Property property, String value) {
+    if (value == null) {
+      return "";
+    }
+    final List<Object> parameters = new ArrayList<Object>();
+    final StringBuilder whereClause = new StringBuilder();
+    whereClause.append(" as l");
+    whereClause.append(" where l." + org.openbravo.model.ad.domain.List.PROPERTY_REFERENCE
+        + ".id = ?");
+    whereClause.append(" and l." + org.openbravo.model.ad.domain.List.PROPERTY_SEARCHKEY + " = ?");
+    parameters.add(property.getDomainType().getReference().getId());
+    parameters.add(value);
+    OBContext.setAdminMode(true);
+    try {
+      final OBQuery<org.openbravo.model.ad.domain.List> listElementQuery = OBDal.getInstance()
+          .createQuery(org.openbravo.model.ad.domain.List.class, whereClause.toString());
+      listElementQuery.setParameters(parameters);
+      org.openbravo.model.ad.domain.List listElement = listElementQuery.uniqueResult();
+      if (listElement != null) {
+        return getTranslatedNameForListElement(listElement);
+      }
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+    return null;
+  }
+
+  private String getTranslatedNameForListElement(org.openbravo.model.ad.domain.List listElement) {
+    if (!OBContext.hasTranslationInstalled()) {
+      return listElement.getName();
+    }
+    final Language language = OBContext.getOBContext() != null ? OBContext.getOBContext()
+        .getLanguage() : null;
+    if (language == null) {
+      return listElement.getName();
+    }
+    final OBCriteria<ListTrl> listElementTrls = OBDal.getInstance().createCriteria(ListTrl.class);
+    listElementTrls.add(Restrictions.eq(ListTrl.PROPERTY_LISTREFERENCE, listElement));
+    listElementTrls.add(Restrictions.eq(ListTrl.PROPERTY_LANGUAGE, language));
+    ListTrl translation = (ListTrl) listElementTrls.uniqueResult();
+    if (translation != null) {
+      return translation.getName();
+    }
+    return listElement.getName();
+  }
+
   private synchronized String formatDate(Property property, Date date) {
     if (date == null) {
       return "";
