diff --git a/CHANGELOG.md b/CHANGELOG.md
index ef4b710e..9998251b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change Log
 
+0.5.7 (Mar 3 2014)
+
+- Bug fix
+
 0.5.6 (Feb 26 2014)
 
 - Updated some translations
diff --git a/extension/install.rdf b/extension/install.rdf
index 2cf82113..0a238123 100644
--- a/extension/install.rdf
+++ b/extension/install.rdf
@@ -9,7 +9,7 @@
   <Description about="urn:mozilla:install-manifest">
     <em:id>VimFx@akhodakivskiy.github.com</em:id>
     <em:homepageURL>http://www.github.com/akhodakivskiy/VimFx</em:homepageURL>
-    <em:version>0.5.6</em:version>
+    <em:version>0.5.7</em:version>
     <em:type>2</em:type>
     <em:bootstrap>true</em:bootstrap>
     <em:optionsType>2</em:optionsType>
diff --git a/extension/packages/mode-hints/mode-hints.coffee b/extension/packages/mode-hints/mode-hints.coffee
index afd5c46b..94b41c6e 100644
--- a/extension/packages/mode-hints/mode-hints.coffee
+++ b/extension/packages/mode-hints/mode-hints.coffee
@@ -6,11 +6,11 @@ hints = require 'mode-hints/hints'
 exports.mode_hints =
   onEnter: (vim, storage, callback) ->
     markers = hints.injectHints(vim.window.document)
-    if markers.length == 0
-      vim.enterMode('normal')
-    else
+    if markers?.length > 0
       storage.markers  = markers
       storage.callback = callback
+    else
+      vim.enterMode('normal')
 
   onLeave: (vim, storage) ->
     hints.removeHints(vim.window.document)
diff --git a/extension/packages/utils.coffee b/extension/packages/utils.coffee
index 4b8e78ee..1f74a079 100644
--- a/extension/packages/utils.coffee
+++ b/extension/packages/utils.coffee
@@ -68,7 +68,7 @@ blurActiveElement = (window) ->
   # really needed? What if a website has made more elements focusable -- shouldn't those also be
   # blurred?
   { activeElement } = window.document
-  if isElementEditable(activeElement)
+  if activeElement and isElementEditable(activeElement)
     activeElement.blur()
 
 isTextInputElement = (element) ->
@@ -89,10 +89,10 @@ isElementEditable = (element) ->
 isElementVisible = (element) ->
   document = element.ownerDocument
   window   = document.defaultView
-  computedStyle = window.getComputedStyle(element, null)
-  return computedStyle.getPropertyValue('visibility') == 'visible' and \
-    computedStyle.getPropertyValue('display') != 'none' and \
-    computedStyle.getPropertyValue('opacity') != '0'
+  if computedStyle = window.getComputedStyle(element, null)
+    return computedStyle.getPropertyValue('visibility') == 'visible' and \
+      computedStyle.getPropertyValue('display') != 'none' and \
+      computedStyle.getPropertyValue('opacity') != '0'
 
 getWindowId = (window) ->
   return window