diff --git a/bindings/metadata/WebKit-3.0.metadata b/bindings/metadata/WebKit-3.0.metadata
index 91a72e9..f85f867 100644
--- a/bindings/metadata/WebKit-3.0.metadata
+++ b/bindings/metadata/WebKit-3.0.metadata
@@ -1,6 +1,8 @@
 DOM* parent="WebKit.DOM" name="DOM(.+)"
 
 DOMEventTarget.add_event_listener skip=false
+DOMEventTarget.add_event_listener.handler closure=-1
+DOMEventTarget.add_event_listener.user_data closure=-1
 DOMEventTarget.remove_event_listener skip=false
 
 WebView.entering_fullscreen#signal name="entering_fullscreen_signal"
diff --git a/src/client/composer/webview-edit-fixer.vala b/src/client/composer/webview-edit-fixer.vala
index f36c43a..296097b 100644
--- a/src/client/composer/webview-edit-fixer.vala
+++ b/src/client/composer/webview-edit-fixer.vala
@@ -271,7 +271,7 @@ public class WebViewEditFixer {
     private bool move_first_child(WebKit.DOM.Node source, WebKit.DOM.Node destination) {
         try {
             WebKit.DOM.Node temp = source.child_nodes.item(0);
-            if (is_editing_delete_container(temp)) {
+            if (is_editing_delete_container((WebKit.DOM.Element) temp)) {
                 source.remove_child(temp);
             } else {
                 // This will remove temp from source
@@ -287,7 +287,7 @@ public class WebViewEditFixer {
     
     // There is a special node that webkit attaches to the BLOCKQUOTE in focus. We want to ignore
     // this node, as it is transient.
-    private bool is_editing_delete_container(WebKit.DOM.Node node) {
+    private bool is_editing_delete_container(WebKit.DOM.Element node) {
         if (!node.has_attributes())
             return false;
         
diff --git a/src/client/util/util-webkit.vala b/src/client/util/util-webkit.vala
index 9679e4c..b88c8a1 100644
--- a/src/client/util/util-webkit.vala
+++ b/src/client/util/util-webkit.vala
@@ -114,6 +114,7 @@ public void bind_event(WebKit.WebView view, string selector, string event, Callb
         for (int i = 0; i < node_list.length; ++i) {
             WebKit.DOM.EventTarget node = node_list.item(i) as WebKit.DOM.EventTarget;
             node.remove_event_listener(event, callback, false);
+
             node.add_event_listener(event, callback, false, extra);
         }
     } catch (Error error) {
