diff --git a/dom/html/HTMLFormElement.cpp b/dom/html/HTMLFormElement.cpp
index 240eaf2b54..d2b39461f1 100644
--- a/dom/html/HTMLFormElement.cpp
+++ b/dom/html/HTMLFormElement.cpp
@@ -676,16 +676,6 @@ HTMLFormElement::DoSubmit(WidgetEvent* aEvent)
mSubmitInitiatedFromUserInput = EventStateManager::IsHandlingUserInput();
- if(mDeferSubmission) {
- // we are in an event handler, JS submitted so we have to
- // defer this submission. let's remember it and return
- // without submitting
- mPendingSubmission = submission;
- // ensure reentrancy
- mIsSubmitting = false;
- return NS_OK;
- }
-
//
// perform the submission
//
@@ -709,6 +699,17 @@ HTMLFormElement::DoSubmit(WidgetEvent* aEvent)
submission->GetAsDialogSubmission()) {
return SubmitDialog(dialogSubmission);
}
+
+ if(mDeferSubmission) {
+ // we are in an event handler, JS submitted so we have to
+ // defer this submission. let's remember it and return
+ // without submitting
+ mPendingSubmission = submission;
+ // ensure reentrancy
+ mIsSubmitting = false;
+ return NS_OK;
+ }
+
return SubmitSubmission(submission);
}