diff -Nupr yelp-2.22.0.orig/configure.in yelp-2.22.0/configure.in
--- yelp-2.22.0.orig/configure.in	2008-03-09 20:13:00.000000000 +0100
+++ yelp-2.22.0/configure.in	2008-04-12 20:20:53.000000000 +0200
@@ -31,16 +31,9 @@ GNOME_CXX_WARNINGS
 
 MORE_WARN_FLAGS=
 DEPRECATION_FLAGS=
-if test "x$GCC" = "xyes"; then
-  MOZILLA_WARN_CXXFLAGS="-Wno-ctor-dtor-privacy -Wno-non-virtual-dtor"
-fi
 
 if test "x$enable_maintainer_mode" = "xyes"; then
 	AC_DEFINE([MAINTAINER_MODE],[1],[Define to enable 'maintainer-only' behaviour])
-#	DEPRECATION_FLAGS="-DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGCONF_DISABLE_DEPRECATED -DGNOME_VFS_DISABLE_DEPRECATED -DBONOBO_UI_DISABLE_DEPRECATED -DBONOBO_DISABLE_DEPRECATED -DLIBGLADE_DISABLE_DEPRECATED -DPANGO_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGNOME_DISABLE_DEPRECATED"
-  if test "x$GCC" = "xyes"; then
-	MOZILLA_WARN_CXXFLAGS="-Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth $MOZILLA_WARN_CXXFLAGS"
-  fi
 fi
 
 if test "x$enable_debug" = "xyes"; then
@@ -79,6 +72,7 @@ PKG_CHECK_MODULES(YELP,
 	libstartup-notification-1.0 >= 0.8
 	dbus-glib-1
 	rarian >= 0.7.0
+	webkit-1.0
 ])
 AC_SUBST([YELP_CFLAGS])
 AC_SUBST([YELP_LIBS])
@@ -174,28 +168,6 @@ esac
 AC_SUBST([YELP_SEARCH_CFLAGS])
 AC_SUBST([YELP_SEARCH_LIBS])
 
-# *****
-# Gecko
-# *****
-
-GECKO_INIT([MOZILLA])
-
-AC_SUBST([MOZILLA])
-AC_SUBST([MOZILLA_FLAVOUR])
-AC_SUBST([MOZILLA_INCLUDE_ROOT])
-AC_SUBST([MOZILLA_HOME])
-AC_SUBST([MOZILLA_PREFIX])
-AC_SUBST([MOZILLA_EXTRA_LIBS])
-AC_SUBST([MOZILLA_GLUE_LIBS])
-
-case "$MOZILLA" in
-xulrunner) gecko_min_version=1.8 ;;
-*firefox) gecko_min_version=1.5 ;;
-*) AC_MSG_ERROR([$gecko_cv_gecko is not supported])
-esac
-
-PKG_CHECK_MODULES([MOZILLA_COMPONENT],[${gecko_cv_gecko}-xpcom >= $gecko_min_version $gecko_cv_extra_pkg_dependencies])
-
 dnl ====================================
 dnl = zlib for help converters
 dnl ====================================
@@ -239,7 +211,7 @@ AC_SUBST(BZ_LIBS)
 
 AM_CPPFLAGS="$AM_CPPFLAGS $DEPRECATION_FLAGS"
 AM_CFLAGS="$AM_CFLAGS $WARN_CFLAGS $MORE_WARN_FLAGS"
-AM_CXXFLAGS="$AM_CXXFLAGS $WARN_CXXFLAGS $MOZILLA_WARN_CXXFLAGS"
+AM_CXXFLAGS="$AM_CXXFLAGS $WARN_CXXFLAGS"
 AC_SUBST([AM_CPPFLAGS])
 AC_SUBST([AM_CFLAGS])
 AC_SUBST([AM_CXXFLAGS])
@@ -270,5 +242,5 @@ yelp-$VERSION:
 
 	Debug enabled:            ${enable_debug}
 	Search backend:           ${search_backend}
-	Mozilla version:          ${MOZILLA}
+	Webcore version!!!!  (Seriously, don't do it maaannn)
 "
diff -Nupr yelp-2.22.0.orig/src/Makefile.am yelp-2.22.0/src/Makefile.am
--- yelp-2.22.0.orig/src/Makefile.am	2008-03-09 20:00:42.000000000 +0100
+++ yelp-2.22.0/src/Makefile.am	2008-04-12 20:20:53.000000000 +0200
@@ -1,12 +1,10 @@
 bin_PROGRAMS = yelp
 
 yelp_SOURCES =							\
-	Yelper.cpp		Yelper.h			\
 	yelp-base.c		yelp-base.h			\
 	yelp-bookmarks.c 	yelp-bookmarks.h		\
 	yelp-debug.c		yelp-debug.h			\
 	yelp-error.c		yelp-error.h			\
-	yelp-gecko-utils.cpp	yelp-gecko-utils.h		\
 	yelp-html.cpp		yelp-html.h			\
 	yelp-io-channel.c	yelp-io-channel.h		\
 	yelp-settings.c		yelp-settings.h			\
@@ -17,7 +15,6 @@ yelp_SOURCES =							\
 	yelp-print.c		yelp-print.h			\
 	yelp-page.c		yelp-page.h			\
 	yelp-transform.c	yelp-transform.h		\
-	yelp-gecko-services.h   yelp-gecko-services.cpp	        \
 	yelp-document.h		yelp-document.c			\
 	yelp-toc.h		yelp-toc.c			\
 	yelp-docbook.h		yelp-docbook.c			\
@@ -40,32 +37,11 @@ YELP_DEFINES =								\
 	-DSERVERDIR=\"$(libexecdir)\"					\
 	-DBINDIR=\""$(bindir)"\"					\
 	-DSHAREDIR=\""$(pkgdatadir)"\"                                  \
-	-DMOZILLA_HOME=\""$(MOZILLA_HOME)\""				\
 	-DGDU_ICON_PATH=\"$(GDU_ICON_PATH)\"
 
-mozilla_include_subdirs =	\
-	.		\
-	commandhandler  \
-	content		\
-	docshell	\
-	dom		\
-	fastfind	\
-	find		\
-	gtkembedmoz	\
-	gfx		\
-	layout		\
-	necko		\
-	pref		\
-	string		\
-	uriloader	\
-	webbrwsr	\
-	webshell	\
-	widget
-
 yelp_CPPFLAGS =									\
 	-I$(top_srcdir)								\
 	-I$(top_builddir)/src							\
-	$(addprefix -I$(MOZILLA_INCLUDE_ROOT)/,$(mozilla_include_subdirs))      \
 	$(YELP_DEFINES)								\
 	$(AM_CPPFLAGS)
 
@@ -77,7 +53,6 @@ yelp_CFLAGS =				\
 yelp_CXXFLAGS =				\
 	$(YELP_CFLAGS)			\
 	$(YELP_SEARCH_CFLAGS)		\
-	$(MOZILLA_COMPONENT_CFLAGS)	\
 	$(AM_CXXFLAGS)
 
 yelp_LDADD =				\
@@ -87,12 +62,7 @@ yelp_LDADD =				\
 	$(Z_LIBS)			\
 	$(BZ_LIBS)			\
 	$(LZMADEC_LIBS)			\
-	$(X_LIBS)			\
-	$(MOZILLA_COMPONENT_LIBS)	\
-	$(MOZILLA_EXTRA_LIBS)		\
-	$(MOZILLA_GLUE_LIBS)
-
-yelp_LDFLAGS = -R$(MOZILLA_HOME) $(AM_LDFLAGS)
+	$(X_LIBS)			
 
 #check_PROGRAMS =		\
 #	test-document		\
diff -Nupr yelp-2.22.0.orig/src/yelp-docbook.c yelp-2.22.0/src/yelp-docbook.c
--- yelp-2.22.0.orig/src/yelp-docbook.c	2008-03-09 20:00:42.000000000 +0100
+++ yelp-2.22.0/src/yelp-docbook.c	2008-04-12 20:20:53.000000000 +0200
@@ -214,6 +214,7 @@ yelp_docbook_new (gchar *filename)
 
     docbook = (YelpDocbook *) g_object_new (YELP_TYPE_DOCBOOK, NULL);
     docbook->priv->filename = g_strdup (filename);
+    printf ("New docbook\n");
 
     yelp_document_add_page_id (YELP_DOCUMENT (docbook), "x-yelp-titlepage", "x-yelp-titlepage");
 
diff -Nupr yelp-2.22.0.orig/src/yelp-document.c yelp-2.22.0/src/yelp-document.c
--- yelp-2.22.0.orig/src/yelp-document.c	2008-03-09 20:00:42.000000000 +0100
+++ yelp-2.22.0/src/yelp-document.c	2008-04-12 20:20:53.000000000 +0200
@@ -139,6 +139,7 @@ document_init (YelpDocument *document)
     YelpDocumentPriv *priv;
 
     document->priv = priv = YELP_DOCUMENT_GET_PRIVATE (document);
+    printf ("Doc init: %p\n", priv);
 
     priv->mutex = g_mutex_new ();
 
diff -Nupr yelp-2.22.0.orig/src/yelp-html.cpp yelp-2.22.0/src/yelp-html.cpp
--- yelp-2.22.0.orig/src/yelp-html.cpp	2008-03-09 20:00:42.000000000 +0100
+++ yelp-2.22.0/src/yelp-html.cpp	2008-04-12 20:20:53.000000000 +0200
@@ -21,28 +21,37 @@
  * Author: Marco Pesenti Gritti <marco@gnome.org>
  */
 
+#if 0
 #include <mozilla-config.h>
+#endif
 #include <config.h>
 
+#if 0
 #include "yelp-gecko-services.h"
 #include "yelp-gecko-utils.h"
+#endif
 #include "yelp-marshal.h"
 #include "yelp-settings.h"
 
+#if 0
 #include "Yelper.h"
+#endif
 
 #include "yelp-html.h"
 #include "yelp-debug.h"
 
+#include <string.h>
 
 #define YELP_HTML_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), YELP_TYPE_HTML, YelpHtmlPriv))
 
 struct _YelpHtmlPriv {
-    Yelper      *yelper;
+    //    Yelper      *yelper;
     gchar       *base_uri;
     gchar       *anchor;
     gboolean     frames_enabled;
     guint        timeout;
+    gchar *content;
+    gchar *mime;
 };
 
 static void      html_set_fonts          (void);
@@ -61,49 +70,72 @@ static guint signals[LAST_SIGNAL] = { 0 
 
 static GObjectClass *parent_class = NULL;
 
-static void
-html_title (GtkMozEmbed *embed)
-{
-    YelpHtml *html = YELP_HTML (embed);
-    char *new_title;
-
-    new_title = gtk_moz_embed_get_title (embed);
-
-    if (new_title && *new_title != '\0')
-    {
-        g_signal_emit (html, signals[TITLE_CHANGED], 0, new_title);
-        g_free (new_title);
-    }
-}
-
-static gint
-html_dom_mouse_down (GtkMozEmbed *embed, gpointer dom_event)
-{
-    YelpHtml *html = YELP_HTML (embed);
+/* static void */
+/* html_title (GtkMozEmbed *embed) */
+/* { */
+/*     YelpHtml *html = YELP_HTML (embed); */
+/*     char *new_title; */
+
+/*     new_title = gtk_moz_embed_get_title (embed); */
+
+/*     if (new_title && *new_title != '\0') */
+/*     { */
+/*         g_signal_emit (html, signals[TITLE_CHANGED], 0, new_title); */
+/*         g_free (new_title); */
+/*     } */
+/* } */
+
+/* static gint */
+/* html_dom_mouse_down (GtkMozEmbed *embed, gpointer dom_event) */
+/* { */
+/*     YelpHtml *html = YELP_HTML (embed); */
  
-    html->priv->yelper->ProcessMouseEvent (dom_event);
+/* #if 0 */
+/*     html->priv->yelper->ProcessMouseEvent (dom_event); */
+/* #endif */
+
+/*     return FALSE; */
+/* } */
+
+/* static gint */
+/* html_open_uri (GtkMozEmbed *embed, const gchar *uri) */
+/* { */
+/*     YelpHtml *html = YELP_HTML (embed); */
+/*     gboolean block_load; */
+
+/*     g_return_val_if_fail (uri != NULL, FALSE); */
+
+/*     debug_print (DB_FUNCTION, "entering\n"); */
+/*     debug_print (DB_ARG, "  uri = \"%s\"\n", uri); */
+
+/*     if (!html->priv->frames_enabled) { */
+/* 	g_signal_emit (html, signals[URI_SELECTED], 0, uri, FALSE); */
+/* 	block_load = TRUE; */
+/*     } else { */
+/* 	g_signal_emit (html, signals[FRAME_SELECTED], 0, uri, FALSE, &block_load); */
+/*     } */
+/*     return block_load; */
+/* } */
 
-    return FALSE;
-}
-
-static gint
-html_open_uri (GtkMozEmbed *embed, const gchar *uri)
+static WebKitNavigationResponse
+html_open_uri (WebKitWebView *view, WebKitWebFrame *frame, WebKitNetworkRequest* req)
 {
-    YelpHtml *html = YELP_HTML (embed);
+    
+    const gchar *uri = webkit_network_request_get_uri (req);
+    WebKitNavigationResponse resp = WEBKIT_NAVIGATION_RESPONSE_ACCEPT;
+    YelpHtml *html = YELP_HTML (view);
     gboolean block_load;
-
-    g_return_val_if_fail (uri != NULL, FALSE);
-
+    printf ("Loading URI: \'%s\'\n", uri);
     debug_print (DB_FUNCTION, "entering\n");
     debug_print (DB_ARG, "  uri = \"%s\"\n", uri);
-
     if (!html->priv->frames_enabled) {
-	g_signal_emit (html, signals[URI_SELECTED], 0, uri, FALSE);
-	block_load = TRUE;
+  	g_signal_emit (html, signals[URI_SELECTED], 0, uri, FALSE);
+  	resp = WEBKIT_NAVIGATION_RESPONSE_IGNORE;
     } else {
-	g_signal_emit (html, signals[FRAME_SELECTED], 0, uri, FALSE, &block_load);
+  	g_signal_emit (html, signals[FRAME_SELECTED], 0, uri, FALSE, &block_load);
     }
-    return block_load;
+    printf ("Returning: %s\n", resp == WEBKIT_NAVIGATION_RESPONSE_IGNORE ? "Ignore" : "Load");
+    return resp;
 }
 
 static void
@@ -113,12 +145,16 @@ html_realize (GtkWidget *widget)
 
     GTK_WIDGET_CLASS (parent_class)->realize (widget);
 
-    nsresult rv;
+    printf ("Realising\n");
+
+/*     nsresult rv; */
+#if 0
     rv = html->priv->yelper->Init ();
         
     if (NS_FAILED (rv)) {
         g_warning ("Yelper initialization failed for %p\n", (void*) html);
     }
+#endif
 }
 
 static void
@@ -132,8 +168,12 @@ html_init (YelpHtml *html)
     priv->base_uri = NULL;
     priv->anchor = NULL;
     priv->timeout = 0;
+    priv->content = NULL;
+    priv->mime = NULL;
 
+#if 0
     priv->yelper = new Yelper (GTK_MOZ_EMBED (html));
+#endif
     klass = YELP_HTML_GET_CLASS (html);
     if (!klass->font_handler) {
 	klass->font_handler =
@@ -163,7 +203,9 @@ html_dispose (GObject *object)
 {
     YelpHtml *html = YELP_HTML (object);
 
+#if 0
     html->priv->yelper->Destroy ();
+#endif
 
     parent_class->dispose (object);
 }
@@ -174,7 +216,9 @@ html_finalize (GObject *object)
     YelpHtml *html = YELP_HTML (object);
     YelpHtmlPriv *priv = html->priv;
 
+#if 0
     delete priv->yelper;
+#endif
 
     if (priv->timeout)
 	g_source_remove (priv->timeout);
@@ -189,8 +233,8 @@ html_class_init (YelpHtmlClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-    GtkMozEmbedClass *moz_embed_class = GTK_MOZ_EMBED_CLASS (klass);
-
+/*     GtkMozEmbedClass *moz_embed_class = GTK_MOZ_EMBED_CLASS (klass); */
+    WebKitWebViewClass* wc_class = WEBKIT_WEB_VIEW_CLASS (klass); 
     parent_class = (GObjectClass *) g_type_class_peek_parent (klass);
 
     object_class->finalize = html_finalize;
@@ -198,9 +242,9 @@ html_class_init (YelpHtmlClass *klass)
 
     widget_class->realize = html_realize;
 
-    moz_embed_class->title = html_title;
-    moz_embed_class->dom_mouse_down = html_dom_mouse_down;
-    moz_embed_class->open_uri = html_open_uri;
+/*     moz_embed_class->title = html_title; */
+/*     moz_embed_class->dom_mouse_down = html_dom_mouse_down; */
+    wc_class->navigation_requested = html_open_uri;
 
     klass->font_handler = 0;
     klass->color_handler = 0;
@@ -228,16 +272,16 @@ html_class_init (YelpHtmlClass *klass)
 		      G_TYPE_BOOLEAN,
 		      2, G_TYPE_POINTER, G_TYPE_BOOLEAN);
     
-    signals[TITLE_CHANGED] = 
-	g_signal_new ("title_changed",
-		      G_TYPE_FROM_CLASS (klass),
-		      G_SIGNAL_RUN_LAST,
-		      G_STRUCT_OFFSET (YelpHtmlClass,
-				       title_changed),
-		      NULL, NULL,
-		      g_cclosure_marshal_VOID__STRING,
-		      G_TYPE_NONE,
-		      1, G_TYPE_STRING);
+/*     signals[TITLE_CHANGED] =  */
+/* 	g_signal_new ("title_changed", */
+/* 		      G_TYPE_FROM_CLASS (klass), */
+/* 		      G_SIGNAL_RUN_LAST, */
+/* 		      G_STRUCT_OFFSET (YelpHtmlClass, */
+/* 				       title_changed), */
+/* 		      NULL, NULL, */
+/* 		      g_cclosure_marshal_VOID__STRING, */
+/* 		      G_TYPE_NONE, */
+/* 		      1, G_TYPE_STRING); */
 
     signals[POPUPMENU_REQUESTED] = 
 	g_signal_new ("popupmenu_requested",
@@ -271,7 +315,7 @@ yelp_html_get_type (void)
 	    (GInstanceInitFunc) html_init,
 	};
 
-	type = g_type_register_static (GTK_TYPE_MOZ_EMBED,
+	type = g_type_register_static (WEBKIT_TYPE_WEB_VIEW,
 				       "YelpHtml", 
 				       &info, (GTypeFlags) 0);
     }
@@ -313,22 +357,45 @@ yelp_html_open_stream (YelpHtml *html, c
     debug_print (DB_FUNCTION, "entering\n");
 
     html->priv->frames_enabled = FALSE;
-    gtk_moz_embed_open_stream (GTK_MOZ_EMBED (html),
-			       html->priv->base_uri,
-			       mime);
+    if (html->priv->content) {
+	printf ("Freeing content\n");
+	g_free (html->priv->content);
+	html->priv->content = NULL;
+    }
+    if (html->priv->mime) {
+	printf ("Freeing mime\n");
+	g_free (html->priv->mime);
+    }
+    html->priv->mime = g_strdup(mime);
+/*     gtk_moz_embed_open_stream (GTK_MOZ_EMBED (html), */
+/* 			       html->priv->base_uri, */
+/* 			       mime); */
 }
 
 void
 yelp_html_write (YelpHtml *html, const gchar *data, gint len)
 {
-     if (len == -1) len = strlen (data);
+    gchar *tmp = NULL;
+    if (len == -1) len = strlen (data);
 
     debug_print (DB_FUNCTION, "entering\n");
     debug_print (DB_ARG, "  data = %i bytes\n", strlen (data));
     debug_print (DB_ARG, "  len  = %i\n", len);
 
-    gtk_moz_embed_append_data (GTK_MOZ_EMBED (html),
-			       data, len);
+    fprintf (stderr, "Appending %s\n", data);
+    if (html->priv->content) {
+	printf ("Appending\n");
+	tmp = g_strjoin (NULL, html->priv->content, data, NULL);
+	g_free (html->priv->content);
+	html->priv->content = tmp;
+    } else {
+	printf ("Strdup\n");
+	html->priv->content = g_strdup (data);
+    }
+
+
+/*     gtk_moz_embed_append_data (GTK_MOZ_EMBED (html), */
+/* 			       data, len); */
 }
 
 void
@@ -374,24 +441,42 @@ void
 yelp_html_close (YelpHtml *html)
 {
     debug_print (DB_FUNCTION, "entering\n");
-    gtk_moz_embed_close_stream (GTK_MOZ_EMBED (html));
-    html->priv->timeout = g_timeout_add (2000, 
-					 (GSourceFunc) timeout_update_gok,
-					 html);
+
+    fprintf (stderr, "Loading into %s\n"
+	     "of mime %s\nContent:\n%s\n", html->priv->base_uri,
+	     html->priv->mime, html->priv->content);
+    webkit_web_view_load_string (WEBKIT_WEB_VIEW (html),
+				 html->priv->content,
+				 html->priv->mime,
+				 NULL,
+				 html->priv->base_uri);
+    g_free (html->priv->content);
+    html->priv->content = NULL;
+    g_free (html->priv->mime);
+    html->priv->mime = NULL;
+
+/*     gtk_moz_embed_close_stream (GTK_MOZ_EMBED (html)); */
+/*     html->priv->timeout = g_timeout_add (2000,  */
+/* 					 (GSourceFunc) timeout_update_gok, */
+/* 					 html); */
 }
 
 gboolean
 yelp_html_find (YelpHtml    *html,
 		const gchar *find_string)
 {
+#if 0
     return html->priv->yelper->Find (find_string);
+#endif
 }
 
 gboolean
 yelp_html_find_again (YelpHtml    *html,					  
 		     gboolean     forward)
 {
+#if 0
     return html->priv->yelper->FindAgain ((PRBool) forward);
+#endif
 }
 
 void
@@ -400,7 +485,9 @@ yelp_html_set_find_props (YelpHtml    *h
 			  gboolean     match_case,
 			  gboolean     wrap)
 {
+#if 0
     html->priv->yelper->SetFindProperties (str, (PRBool) match_case, (PRBool) wrap);
+#endif
 }
 
 void
@@ -420,31 +507,41 @@ yelp_html_jump_to_anchor (YelpHtml    *h
 void
 yelp_html_copy_selection (YelpHtml *html)
 {
+#if 0
     html->priv->yelper->DoCommand ("cmd_copy");
+#endif
 }
 
 void
 yelp_html_select_all (YelpHtml *html)
 {
+#if 0
     html->priv->yelper->DoCommand ("cmd_selectAll");
+#endif
 }
 
 void
 yelp_html_print (YelpHtml *html, YelpPrintInfo *info, gboolean preview, gint *npages)
 {
+#if 0
     html->priv->yelper->Print (info, preview, npages);
+#endif
 }
 
 void
 yelp_html_preview_navigate (YelpHtml *html, gint page_no)
 {
+#if 0
     html->priv->yelper->PrintPreviewNavigate (page_no);
+#endif
 }
 
 void
 yelp_html_preview_end (YelpHtml *html)
 {
+#if 0
     html->priv->yelper->PrintPreviewEnd ();
+#endif
 }
 
 static void
@@ -453,11 +550,15 @@ html_set_fonts (void)
     gchar *font;
 
     font = yelp_settings_get_font (YELP_FONT_VARIABLE);
+#if 0
     yelp_gecko_set_font (YELP_FONT_VARIABLE, font);
+#endif
     g_free (font);
 
     font = yelp_settings_get_font (YELP_FONT_FIXED);
+#if 0
     yelp_gecko_set_font (YELP_FONT_FIXED, font);
+#endif
     g_free (font);
 }
 
@@ -467,13 +568,19 @@ html_set_colors (void)
     const gchar *color;
 
     color = yelp_settings_get_color (YELP_COLOR_FG);
+#if 0
     yelp_gecko_set_color (YELP_COLOR_FG, color);
+#endif
 
     color = yelp_settings_get_color (YELP_COLOR_BG);
+#if 0
     yelp_gecko_set_color (YELP_COLOR_BG, color);
+#endif
  
     color = yelp_settings_get_color (YELP_COLOR_ANCHOR);
+#if 0
     yelp_gecko_set_color (YELP_COLOR_ANCHOR, color);
+#endif
 }
 
 static void
@@ -482,17 +589,24 @@ html_set_a11y (void)
     gboolean caret;
 
     caret = yelp_settings_get_caret ();
+#if 0
     yelp_gecko_set_caret (caret);
+#endif
 }
 
 gboolean
 yelp_html_initialize (void)
 {
+#if 0
     return yelp_gecko_init ();
+#endif
+    return TRUE;
 }
 
 void
 yelp_html_shutdown (void)
 {
+#if 0
     yelp_gecko_shutdown ();
+#endif
 }
diff -Nupr yelp-2.22.0.orig/src/yelp-html.h yelp-2.22.0/src/yelp-html.h
--- yelp-2.22.0.orig/src/yelp-html.h	2008-03-09 20:00:42.000000000 +0100
+++ yelp-2.22.0/src/yelp-html.h	2008-04-12 20:24:09.000000000 +0200
@@ -23,7 +23,11 @@
 #ifndef __YELP_HTML_H__
 #define __YELP_HTML_H__
 
+#if 0
 #include <gtkmozembed.h>
+#endif
+#include <webkit/webkit.h>
+
 
 #include "yelp-print.h"
 
@@ -41,13 +45,13 @@ typedef struct _YelpHtmlClass   YelpHtml
 typedef struct _YelpHtmlPriv    YelpHtmlPriv;
 
 struct _YelpHtml {
-	GtkMozEmbed   parent;
+	WebKitWebView parent;
 
 	YelpHtmlPriv *priv;
 };
 
 struct _YelpHtmlClass {
-        GtkMozEmbedClass parent_class;
+	WebKitWebViewClass parent;
 
 	guint font_handler;
 	guint color_handler;
diff -Nupr yelp-2.22.0.orig/src/yelp-main.c yelp-2.22.0/src/yelp-main.c
--- yelp-2.22.0.orig/src/yelp-main.c	2008-03-09 20:00:42.000000000 +0100
+++ yelp-2.22.0/src/yelp-main.c	2008-04-12 20:24:03.000000000 +0200
@@ -35,6 +35,7 @@
 #include <dbus/dbus-glib-bindings.h>
 #include <string.h>
 #include <stdlib.h>
+#include <libxslt/xslt.h>
 
 #include "client-bindings.h"
 #include "yelp-window.h"
@@ -346,6 +347,8 @@ main (int argc, char **argv) 
 	bindtextdomain(GETTEXT_PACKAGE, GNOMELOCALEDIR);  
         bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 	textdomain(GETTEXT_PACKAGE);
+ 	xsltInit ();
+	g_thread_init (NULL);
 
 	local_id = (gchar *) g_getenv ("DESKTOP_STARTUP_ID");
 
@@ -368,7 +371,7 @@ main (int argc, char **argv) 
 				      GNOME_PROGRAM_STANDARD_PROPERTIES, 
 				      GNOME_PARAM_GOPTION_CONTEXT, context,
 				      GNOME_PARAM_NONE);
-	dbus_g_thread_init();
+/* 	dbus_g_thread_init(); */
 
 	if (!startup_id) {
 		Time tmp;
@@ -389,7 +392,7 @@ main (int argc, char **argv) 
 	}
 
 	if (!yelp_html_initialize ()) {
-		g_error ("Could not initialize gecko!");
+		g_error ("Could not initialize HTML component!");
 	}
 
 	if (files != NULL && files[0] != NULL) {
@@ -412,15 +415,16 @@ main (int argc, char **argv) 
 		const gchar          *env;
 
 		/* workaround for bug #329461 */
-		env = g_getenv ("MOZ_ENABLE_PANGO");
+/* 		env = g_getenv ("MOZ_ENABLE_PANGO"); */
 		
-		if (env == NULL ||
-		    *env == '\0' ||
-		    g_str_equal(env, "0")) 
-			{
-				g_setenv ("MOZ_DISABLE_PANGO", "1", TRUE);
-			}
+/* 		if (env == NULL || */
+/* 		    *env == '\0' || */
+/* 		    g_str_equal(env, "0"))  */
+/* 			{ */
+/* 				g_setenv ("MOZ_DISABLE_PANGO", "1", TRUE); */
+/* 			} */
 		
+		xsltInit ();
 		if (session_started) {
 			main_restore_session ();
 		} else {
diff -Nupr yelp-2.22.0.orig/src/yelp-transform.c yelp-2.22.0/src/yelp-transform.c
--- yelp-2.22.0.orig/src/yelp-transform.c	2008-03-09 20:00:42.000000000 +0100
+++ yelp-2.22.0/src/yelp-transform.c	2008-04-12 20:20:53.000000000 +0200
@@ -74,7 +74,9 @@ YelpTransform
     
     transform = g_new0 (YelpTransform, 1);
 
+    printf ("New transform: %p - ss: %s\n", transform, stylesheet);
     transform->stylesheet = xsltParseStylesheetFile (BAD_CAST stylesheet);
+    printf ("sheet: %p\n", transform->stylesheet);
     if (!transform->stylesheet) {
 	transform->error =
 	    yelp_error_new (_("Invalid Stylesheet"),
diff -Nupr yelp-2.22.0.orig/src/yelp-window.c yelp-2.22.0/src/yelp-window.c
--- yelp-2.22.0.orig/src/yelp-window.c	2008-03-09 20:00:42.000000000 +0100
+++ yelp-2.22.0/src/yelp-window.c	2008-04-12 20:20:53.000000000 +0200
@@ -126,7 +126,7 @@ static gboolean    html_frame_selected_c
 						   gboolean           handled,
 						   gpointer           user_data);
 static void        html_title_changed_cb          (YelpHtml          *html,
-						   gchar             *title,
+						   gpointer title,
 						   gpointer           user_data);
 static void        html_popupmenu_requested_cb    (YelpHtml *html,
 						   gchar *uri,
@@ -1731,10 +1731,11 @@ html_uri_selected_cb (YelpHtml  *html,
 		      gpointer   user_data)
 {
     YelpWindow *window = YELP_WINDOW (user_data);
+    gchar *tmp = NULL;
+    gchar *tmp1 = NULL;
 
     debug_print (DB_FUNCTION, "entering\n");
     debug_print (DB_ARG, "  uri = \"%s\"\n", uri);
-
     if (!handled) {
 	yelp_window_load (window, uri);
     }
@@ -1766,10 +1767,10 @@ html_frame_selected_cb (YelpHtml *html, 
 
 static void
 html_title_changed_cb (YelpHtml  *html,
-		       gchar     *title,
+		       gpointer   title,
 		       gpointer   user_data)
 {
-    gtk_window_set_title (GTK_WINDOW (user_data), title);
+    //    gtk_window_set_title (GTK_WINDOW (user_data), user_data);
 }
 
 static void
@@ -1971,13 +1972,13 @@ window_print_document_cb (GtkAction *act
 
 
     gtk_win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-    html = yelp_html_new ();
+    //html = yelp_html_new ();
     
     gtk_container_add (GTK_CONTAINER (gtk_win), GTK_WIDGET (vbox));
     gtk_box_pack_end (GTK_BOX (vbox), GTK_WIDGET (html), TRUE, TRUE, 0);
     gtk_widget_show (gtk_win);
     gtk_widget_show (vbox);
-    gtk_widget_show (GTK_WIDGET (html));
+    //gtk_widget_show (GTK_WIDGET (html));
     gtk_widget_hide (gtk_win);
 
     print = g_new0 (PrintStruct, 1);
@@ -1985,7 +1986,7 @@ window_print_document_cb (GtkAction *act
     print->window = window;
     print->gtk_win = (GtkWindow *) gtk_win;
     print->vbox = (GtkVBox *) vbox;
-    print->html = html;
+    //print->html = html;
 
     yelp_document_get_page (doc,
 			    "index",
