diff --git a/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js b/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js
--- a/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js
+++ b/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js
@@ -396,6 +396,30 @@
     this._original_init();
   },
   
+  _redrawn: isc.FormItem.getPrototype().redrawn,
+  redrawn: function () {
+    this._inRedrawn = true;
+    this._redrawn();
+    delete this._inRedrawn;
+  },
+  
+  // when reseting the last selection at redraw, sometimes the item's html element
+  // does not yet have its value restored, ignore this call to 
+  // reset to last selection, it will be done again later in itemSetValues
+  _resetToLastSelection: isc.FormItem.getPrototype().resetToLastSelection,
+  resetToLastSelection : function (dataTransform) {
+    if (this._inRedrawn) {
+      return;
+    }
+    this._resetToLastSelection(dataTransform);
+  },
+  
+  _focusInItem: isc.FormItem.getPrototype().focusInItem,
+  focusInItem: function() {
+    console.log('focusInItem ' + this.name);
+    return this._focusInItem();
+  },
+  
   _handleEditorExit: isc.FormItem.getPrototype().handleEditorExit,
   handleEditorExit: function() {
     if (this.form && this.form._isRedrawing) {
