diff --git a/src/org/openbravo/dal/xml/EntityResolver.java b/src/org/openbravo/dal/xml/EntityResolver.java
--- a/src/org/openbravo/dal/xml/EntityResolver.java
+++ b/src/org/openbravo/dal/xml/EntityResolver.java
@@ -245,6 +245,9 @@
       // search client and system
       result = searchClientRefLoaded(id, entity, refLoadeds);
       if (result == null) {
+        result = searchSystemRefLoaded(id, entity, refLoadeds);
+      }
+      if (result == null) {
         result = searchSystem(id, entity);
       }
     } else if (al == AccessLevel.CLIENT) {
@@ -338,6 +341,20 @@
     return doSearch(id, entity, client.getId(), "0");
   }
 
+  private BaseOBObject searchSystemRefLoaded(String id, Entity entity,
+      List<RefDataLoaded> refLoadeds) {
+    BaseOBObject result = null;
+    for (RefDataLoaded refLoaded : refLoadeds) {
+      if (refLoaded.getClientId().equals('0') && refLoaded.getOrgId().equals("0")) {
+        result = doSearch(refLoaded.getSpecificId(), entity, "0", "0");
+        if (result != null) {
+          return result;
+        }
+      }
+    }
+    return doSearch(id, entity, "0", "0");
+  }
+
   public String getOriginalId(BaseOBObject bob) {
     return objectOriginalIdMapping.get(bob);
   }
