rem: if (target != null) document.xformsPreviousDOMFocusOut = target; 
add: var sendFocusEvents = target != null;   if (sendFocusEvents && document.xformsPreviousValueChanged) { var eventSent = xformsValueChanged(document.xformsPreviousValueChanged, target); document.xformsPreviousValueChanged = null; if (eventSent) document.xformsPreviousDOMFocusOut = null;  sendFocusEvents = !eventSent; }   if (sendFocusEvents) { if (document.xformsPreviousDOMFocusOut) { if (document.xformsPreviousDOMFocusOut != target) { var events = new Array(); events.push(xformsCreateEventArray (document.xformsPreviousDOMFocusOut, "DOMFocusOut", null)); events.push(xformsCreateEventArray(target, "DOMFocusIn", null)); xformsFireEvents(events); } document.xformsPreviousDOMFocusOut = null; } else { if (document.xformsPreviousDOMFocusIn != target) { xformsFireEvents(new Array(xformsCreateEventArray(target, "DOMFocusIn", null))); } } } document.xformsPreviousDOMFocusIn = target; 
context:                     xformsAddEventListener(control, "blur", function(event) {                        // Focus out events are only handled when we have receive a focus in event.                        // Here we just save the event which will be handled when we receive a focus                        // in from the browser.                        var target = getEventTarget(event);                        while (target && (target.className == null || !xformsArrayContains(target.className.split(" "), "xforms-control")))                            target = target.parentNode;                        if (target != null)                            document.xformsPreviousDOMFocusOut = target;                    });
meta: 7801	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/7801/d02e56b27bcca838dc919a23e4c1a39072e2f4bb/xforms.js/buggy/src/examples/web/ops/javascript/xforms.js