Index: compat/core/src/main/javascript/status.js =================================================================== --- compat/core/src/main/javascript/status.js (revision 29264) +++ compat/core/src/main/javascript/status.js (revision 29265) @@ -437,8 +437,10 @@ }; onLoad(window, function() { - ice.onBeforeSubmit(function() { - indctrs && on(indctrs.busy); + ice.onBeforeSubmit(function(source, isClientRequest) { + if(isClientRequest){ + indctrs && on(indctrs.busy); + } }); ice.onBeforeUpdate(function() { indctrs && off(indctrs.busy); Index: core/src/main/javascript/blockui.js =================================================================== --- core/src/main/javascript/blockui.js (revision 29264) +++ core/src/main/javascript/blockui.js (revision 29265) @@ -72,9 +72,9 @@ } var stopBlockingUI = noop; - namespace.onBeforeSubmit(function(source) { - //don't block UI for the retrieveUpdate requests - if (isBlockUIEnabled(source)) { + namespace.onBeforeSubmit(function(source,isClientRequest) { + //Only block the UI for client-initiated requests (not push requests) + if (isClientRequest && isBlockUIEnabled(source)) { debug(logger, 'blocking UI'); var blockUIOverlay = Overlay(); var rollbacks = inject(['input', 'select', 'textarea', 'button', 'a'], [], function(result, type) { Index: core/src/main/javascript/application.js =================================================================== --- core/src/main/javascript/application.js (revision 29264) +++ core/src/main/javascript/application.js (revision 29265) @@ -262,10 +262,12 @@ var source = e.source; switch (e.status) { case 'begin': - //trigger notification only when submit is user-initiated - if (source.id != retrieveUpdateFormID(viewIDOf(source))) { - broadcast(perRequestOnBeforeSubmitListeners, [ source ]); - } + //Include parameter indicating if submission was triggered by client + var isClientRequest = false; + if (!source || source.id != retrieveUpdateFormID(viewIDOf(source))) { + isClientRequest = true; + } + broadcast(perRequestOnBeforeSubmitListeners, [ source, isClientRequest ]); break; case 'complete': var xmlContent = e.responseXML;