diff -r 79904fd12c86 modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-tree-filter.js
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-tree-filter.js	Wed Sep 23 16:52:19 2015 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-tree-filter.js	Wed Sep 23 18:02:23 2015 +0200
@@ -303,11 +303,34 @@
   },
 
   filterDialogCallback: function (criteria) {
-    this.grid.parentElement.setFilterEditorCriteria(criteria);
+    var finalCriteria, theCriteria;
+    this.setCurrentCriterion(criteria);
+    theCriteria = this.grid.parentElement.getFilterEditorCriteria();
+    if (theCriteria && theCriteria.criteria) {
+      finalCriteria = theCriteria;
+    } else {
+      if (criteria.operator === 'or') {
+        finalCriteria = {};
+        finalCriteria.operator = "and";
+        finalCriteria._constructor = "AdvancedCriteria";
+        finalCriteria.criteria = [];
+        finalCriteria = theCriteria;
+      } else {
+        finalCriteria = criteria;
+      }
+    }
+    this.grid.parentElement.setFilterEditorCriteria(finalCriteria);
     this.lastValueFromPopup = this.getValue();
     this.form.grid.performAction();
   },
 
+  setCurrentCriterion: function (criteria) {
+    if (!criteria.criteria) {
+      this.setValue(null);
+    } else {
+      this.setCriterion(criteria);
+    }
+  },
   init: function () {
     var field;
     this.pickerIconSrc = OB.Styles.OBFormField.DefaultSearch.pickerIconSrc;
