diff --git a/webkit/webkit-1.1.defs b/webkit/webkit-1.1.defs
index c6247c3..713b3a5 100644
--- a/webkit/webkit-1.1.defs
+++ b/webkit/webkit-1.1.defs
@@ -244,6 +244,25 @@
 
 ;; from webkit/webkitwebframe.h
 
+(define-method get_xml_http_request
+  (of-object "WebKitWebFrame")
+  (c-name "webkit_web_frame_get_xml_http_request")
+  (return-type "gpointer")
+)
+
+(define-method get_dom_window
+  (of-object "WebKitWebFrame")
+  (c-name "webkit_web_frame_get_dom_window")
+  (return-type "gpointer")
+)
+
+(define-method get_dom_document
+  (of-object "WebKitWebFrame")
+  (c-name "webkit_web_frame_get_dom_document")
+  (return-type "gpointer")
+)
+
+
 (define-method load_uri
   (of-object "WebKitWebFrame")
   (c-name "webkit_web_frame_load_uri")
diff --git a/webkit/webkit.override b/webkit/webkit.override
index 644d488..90340dd 100644
--- a/webkit/webkit.override
+++ b/webkit/webkit.override
@@ -30,6 +30,12 @@ headers
 #include <JavaScriptCore/JSContextRef.h>
 
 #include "javascriptcore/javascriptcore_types.h"
+
+#include "pywebkit.h"
+
+extern struct pyjoinapi pywebkit_api_fns;
+
+
 %%
 body
 static PyObject *
@@ -310,3 +316,34 @@ _wrap_webkit_web_data_source_get_data(PyGObject *self)
 }
 
 
+%%
+override webkit_web_frame_get_dom_document noargs
+static PyObject *
+_wrap_webkit_web_frame_get_dom_document(PyGObject *self)
+{
+    gpointer ptr;
+    ptr = webkit_web_frame_get_dom_document(WEBKIT_WEB_FRAME(self->obj));
+    return pywebkit_api_fns.doc(ptr);
+}
+
+%%
+override webkit_web_frame_get_xml_http_request noargs
+static PyObject *
+_wrap_webkit_web_frame_get_xml_http_request(PyGObject *self)
+{
+    gpointer ptr;
+    ptr = webkit_web_frame_get_xml_http_request(WEBKIT_WEB_FRAME(self->obj));
+    return pywebkit_api_fns.xhr(ptr);
+}
+
+%%
+override webkit_web_frame_get_dom_window noargs
+static PyObject *
+_wrap_webkit_web_frame_get_dom_window(PyGObject *self)
+{
+    gpointer ptr;
+    ptr = webkit_web_frame_get_dom_window(WEBKIT_WEB_FRAME(self->obj));
+    return pywebkit_api_fns.win(ptr);
+}
+
+
diff --git a/webkit/webkitmodule.c b/webkit/webkitmodule.c
index 4003a83..7f8dbf4 100644
--- a/webkit/webkitmodule.c
+++ b/webkit/webkitmodule.c
@@ -27,11 +27,18 @@
 #include <pygobject.h>
 #include <pygtk/pygtk.h>
 
+#include "pywebkit.h"
+
 extern PyMethodDef pywebkit_functions[];
 
 void pywebkit_register_classes (PyObject *d);
 void pywebkit_add_constants(PyObject *module, const gchar *strip_prefix);
 
+void webkit_init_pywebkit(PyObject *m, struct pyjoinapi *api_fns);
+ 
+struct pyjoinapi pywebkit_api_fns;
+
+
 DL_EXPORT(void)
 initwebkit(void)
 {
@@ -49,9 +56,11 @@ initwebkit(void)
     d = PyModule_GetDict (m);
     pywebkit_register_classes (d);
     pywebkit_add_constants (m, "WEBKIT_");
+    webkit_init_pywebkit(m, &pywebkit_api_fns);
 
     if (PyErr_Occurred ()) {
         PyErr_Print();
         Py_FatalError ("can't initialise module webkit");
     }
 }
+
