virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> handler);
     virtual wxVector<wxSharedPtr<wxWebViewHandler> > GetHandlers() { return m_handlerList; }
 
-    /** FIXME: hack to work around signals being received too early */
-    bool m_ready;
-
-
     /** TODO: check if this can be made private
      * The native control has a getter to check for busy state, but except in
      * very recent versions of webkit this getter doesn't say everything we need
 
                                  GParamSpec*,
                                  wxWebViewWebKit *webKitCtrl)
 {
-    if (!webKitCtrl->m_ready) return;
-
     wxString url = webKitCtrl->GetCurrentURL();
 
     WebKitLoadStatus status;
                       long style,
                       const wxString& name)
 {
-    m_ready = false;
     m_busy = false;
     m_guard = false;
 
     gtk_container_add(GTK_CONTAINER(m_widget), GTK_WIDGET(m_web_view));
     gtk_widget_show(GTK_WIDGET(m_web_view));
 
-    g_signal_connect_after(m_web_view, "notify::load-status",
-                           G_CALLBACK(wxgtk_webview_webkit_load_status),
-                           this);
     g_signal_connect_after(m_web_view, "navigation-policy-decision-requested",
                            G_CALLBACK(wxgtk_webview_webkit_navigation),
                            this);
     history = webkit_web_view_get_back_forward_list(m_web_view);
     m_historyLimit = webkit_web_back_forward_list_get_limit(history);
 
-    m_ready = true;
+    // last to avoid getting signal too early
+    g_signal_connect_after(m_web_view, "notify::load-status",
+                           G_CALLBACK(wxgtk_webview_webkit_load_status),
+                           this);
 
     return true;
 }