diff --git a/mozilla/docshell/base/nsDocShell.cpp b/mozilla/docshell/base/nsDocShell.cpp
index c4c39879564..47c39d7a78b 100644
--- a/mozilla/docshell/base/nsDocShell.cpp
+++ b/mozilla/docshell/base/nsDocShell.cpp
@@ -3026,7 +3026,7 @@ nsDocShell::FocusAvailable(nsIBaseWindow * aCurrentFocus,
}
- //Otherwise, check the chilren and offer it to the next sibling.
+ //Otherwise, check the children and offer it to the next sibling.
PRInt32 i;
PRInt32 n = mChildren.Count();
for (i = 0; i < n; i++) {
@@ -3076,7 +3076,11 @@ nsDocShell::FocusAvailable(nsIBaseWindow * aCurrentFocus,
// Call again to offer focus upwards and to start at the beginning of our
// child list if no one above us wants focus.
- return FocusAvailable(this, aForward, aTookFocus);
+ if (NS_STATIC_CAST(nsIBaseWindow*, this) != aCurrentFocus)
+ return FocusAvailable(this, aForward, aTookFocus);
+
+ *aTookFocus = PR_FALSE;
+ return NS_OK;
}
NS_IMETHODIMP
diff --git a/mozilla/xpfe/global/resources/content/bindings/dialog.xml b/mozilla/xpfe/global/resources/content/bindings/dialog.xml
index 4ac53349b13..2c3dcf31b7c 100644
--- a/mozilla/xpfe/global/resources/content/bindings/dialog.xml
+++ b/mozilla/xpfe/global/resources/content/bindings/dialog.xml
@@ -29,7 +29,7 @@
-
+
+
+
+
+
+
+