diff --git a/content/html/content/src/nsHTMLInputElement.cpp b/content/html/content/src/nsHTMLInputElement.cpp
index c5a86c62c72..3b568cbe14e 100644
--- a/content/html/content/src/nsHTMLInputElement.cpp
+++ b/content/html/content/src/nsHTMLInputElement.cpp
@@ -1180,15 +1180,19 @@ nsHTMLInputElement::Select()
// If the DOM event was not canceled (e.g. by a JS event handler
// returning false)
if (status == nsEventStatus_eIgnore) {
- nsCOMPtr esm;
- if (NS_OK == presContext->GetEventStateManager(getter_AddRefs(esm))) {
- PRInt32 currentState;
- //XXX Fix for bug 135345 - ESM currently does not check to see if we have
- //focus before attempting to set focus again and may cause infinite recursion.
- //For now check if we have focus and do not set focus again if already focused.
- esm->GetContentState(this, currentState);
- if (!(currentState & NS_EVENT_STATE_FOCUS)) {
- esm->SetContentState(this, NS_EVENT_STATE_FOCUS);
+ if (presContext) {
+ nsCOMPtr esm;
+ presContext->GetEventStateManager(getter_AddRefs(esm));
+ if (esm) {
+ // XXX Fix for bug 135345 - ESM currently does not check to see if we
+ // have focus before attempting to set focus again and may cause
+ // infinite recursion. For now check if we have focus and do not set
+ // focus again if already focused.
+ PRInt32 currentState;
+ esm->GetContentState(this, currentState);
+ if (!(currentState & NS_EVENT_STATE_FOCUS)) {
+ esm->SetContentState(this, NS_EVENT_STATE_FOCUS);
+ }
}
}