Index: gtk+-aqd/gtk/gtkmenubar.c
===================================================================
--- gtk+-aqd/gtk/gtkmenubar.c	(revision 19601)
+++ gtk+-aqd/gtk/gtkmenubar.c	(working copy)
@@ -85,6 +85,30 @@
 
 static GtkShadowType get_shadow_type   (GtkMenuBar      *menubar);
 
+gpointer _libgnomenu_lookup(gchar * name){
+	gpointer sym = NULL;
+	gboolean loaded = FALSE;
+	static GModule * libgnomenu = NULL;
+	if(!loaded) {
+		libgnomenu = g_module_open("libgnomenu", 0/*G_MODULE_BIND_LOCAL*/);
+		if(!libgnomenu)
+			g_warning("Global Menu Library not found");
+		loaded = TRUE;
+	}
+	if(libgnomenu) {
+		if(!g_module_symbol(libgnomenu, 
+				name, 
+				&sym)){
+			g_warning("%s not found", name);
+		}else 
+			g_warning("%s found at %p", 
+				name, sym);
+		
+	}
+
+	return sym;
+}
+
 G_DEFINE_TYPE (GtkMenuBar, gtk_menu_bar, GTK_TYPE_MENU_SHELL)
 
 static void
@@ -96,6 +120,10 @@
 
   GtkBindingSet *binding_set;
 
+  gboolean * compatible = _libgnomenu_lookup("gnomenu_compatible");
+  void (*gnomenu_menu_bar_class_init)(gpointer klass)
+			= _libgnomenu_lookup("gnomenu_menu_bar_class_intern_init");
+
   gobject_class = (GObjectClass*) class;
   widget_class = (GtkWidgetClass*) class;
   menu_shell_class = (GtkMenuShellClass*) class;
@@ -213,7 +241,9 @@
 						   G_MAXINT,
 						   0,
 						   GTK_PARAM_READWRITE));
-
+	if(compatible && * compatible && gnomenu_menu_bar_class_init) {
+		(*gnomenu_menu_bar_class_init)(class);
+	} else 
   g_type_class_add_private (gobject_class, sizeof (GtkMenuBarPrivate));  
 }
 
