I was already trying to implement the GtkUiManager code in Beaver a bit (which wasn't too easy), but I'll wait with that then until you have the time to think about a way how to rewrite the code.
Another great thing: I solved the segfault and managed to start Beaver! I did this by removing (commenting) all g_free() calls in the code files. Of course these calls aren't useless (they free memory), so Beaver freezes when clicking just a few menu's. I'm now putting back the g_free() calls step by step. So at last we'll now which g_free() call is actually causing the segfault.
If you have some time, could you please create a (new) second CVS repository? The current one stays for the last Beaver 0.3.1 code. Then I'll upload the modified 0.3.0 code (the modifications I talked about in the previous paragraph) to the new CVS repository. We can then use this modified 0.3.0, without segfault, as a starting point to work on our new version of Beaver.