/**
 * @class Ext.form.ComboBox
 * FIX: ComboBox reports incorrect value when non-unique display fields are used
 */
Ext.override(Ext.form.ComboBox, {
    assertValue  : function(){
        var val = this.getRawValue(),
            rec;
        if(this.valueField && Ext.isDefined(this.value)){
            rec = this.findRecord(this.valueField, this.value);
        }
        if(!rec || rec.get(this.displayField) != val){
            rec = this.findRecord(this.displayField, val);
        }
        if(!rec && this.forceSelection){
            if(val.length > 0 && val != this.emptyText){
                this.el.dom.value = Ext.value(this.lastSelectionText, '');
                this.applyEmptyText();
            }else{
                this.clearValue();
            }
        }else{
            if(rec && this.valueField){
                val = rec.get(this.valueField/* || this.displayField*/);
                if (/*val == rec.get(this.displayField) &&*/ this.value == val /*rec.get(this.valueField)*/){
                    return;
                }
            }
            this.setValue(val);
        }
    }
});