diff --git a/gtkhtml/gtkhtml.c b/gtkhtml/gtkhtml.c
index 17da9dd..3dfcc3f 100644
--- a/gtkhtml/gtkhtml.c
+++ b/gtkhtml/gtkhtml.c
@@ -4700,11 +4700,25 @@ gtk_html_redo (GtkHTML *html)
 }
 
 /* misc utils */
+
+static void
+iframe_set_default_engine_cb (HTMLObject *o, HTMLEngine *e, gpointer data)
+{
+	if (HTML_IS_IFRAME (o)) {
+		GtkHTML *html = GTK_HTML (HTML_IFRAME (o)->html);
+
+		if (html)
+			gtk_html_set_default_engine (html, GPOINTER_TO_INT (data));
+	}
+}
+
 /* if engine_type == false - default behaviour*/
 void
-gtk_html_set_default_engine(GtkHTML *html, gboolean engine_type)
+gtk_html_set_default_engine (GtkHTML *html, gboolean engine_type)
 {
-	html_engine_set_engine_type( html->engine, engine_type);
+	html_engine_set_engine_type (html->engine, engine_type);
+	if (html->engine->clue)
+		html_object_forall (html->engine->clue, html->engine, iframe_set_default_engine_cb, GINT_TO_POINTER (engine_type));
 }
 
 gboolean
