I can confirm that I am experiencing the same bug with KeePass v2.28 under Mono v3.2.8 on Lubuntu v14.04. I am using two local dbs and one of them has a custom colour. I tested it with two dbs without the custom colour, and it worked fine on changing tabs without crashing. Then I added the third db which has a custom colour and it crashed on changing tabs with the following error message: System.ArgumentException: Cannot add Control to TabControl. Only TabPages can be directly added to TabControls. at System.Windows.Forms.TabControl+ControlCollection.Add (System.Windows.Forms.Control value) [0x00000] in :0 at System.Windows.Forms.Control.set_Parent (System.Windows.Forms.Control value) [0x00000] in :0 at System.Windows.Forms.Control..ctor (System.Windows.Forms.Control parent, System.String text) [0x00000] in :0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:.ctor (System.Windows.Forms.Control,string) at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in :0 at System.Windows.Forms.XplatUIX11.DispatchMessage (System.Windows.Forms.MSG& msg) [0x00000] in :0 at System.Windows.Forms.XplatUIX11.DoEvents () [0x00000] in :0 at System.Windows.Forms.XplatUI.DoEvents () [0x00000] in :0 at System.Windows.Forms.Application.DoEvents () [0x00000] in :0 at System.Windows.Forms.TreeView.EndEdit (System.Windows.Forms.TreeNode node) [0x00000] in :0 at System.Windows.Forms.TreeView.VScrollBarValueChanged (System.Object sender, System.EventArgs e) [0x00000] in :0 at System.Windows.Forms.ScrollBar.OnValueChanged (System.EventArgs e) [0x00000] in :0 at System.Windows.Forms.ScrollBar.set_Value (Int32 value) [0x00000] in :0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.ScrollBar:set_Value (int) at System.Windows.Forms.TreeView.SetVScrollValue (Int32 value) [0x00000] in :0 at System.Windows.Forms.TreeView.SetTop (System.Windows.Forms.TreeNode node) [0x00000] in :0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.TreeView:SetTop (System.Windows.Forms.TreeNode) at System.Windows.Forms.TreeNode.EnsureVisible () [0x00000] in :0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.TreeNode:EnsureVisible () at System.Windows.Forms.TreeView.set_SelectedNode (System.Windows.Forms.TreeNode value) [0x00000] in :0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.TreeView:set_SelectedNode (System.Windows.Forms.TreeNode) at KeePass.Forms.MainForm.UpdateGroupList (KeePassLib.PwGroup pgNewSelected) [0x00000] in :0 at KeePass.Forms.MainForm.UpdateUI (Boolean bRecreateTabBar, KeePass.UI.PwDocument dsSelect, Boolean bUpdateGroupList, KeePassLib.PwGroup pgSelect, Boolean bUpdateEntryList, KeePassLib.PwGroup pgEntrySource, Boolean bSetModified, System.Windows.Forms.Control cOptFocus) [0x00000] in :0 at KeePass.Forms.MainForm.UpdateUI (Boolean bRecreateTabBar, KeePass.UI.PwDocument dsSelect, Boolean bUpdateGroupList, KeePassLib.PwGroup pgSelect, Boolean bUpdateEntryList, KeePassLib.PwGroup pgEntrySource, Boolean bSetModified) [0x00000] in :0 at KeePass.Forms.MainForm.MakeDocumentActive (KeePass.UI.PwDocument ds) [0x00000] in :0 at KeePass.Forms.MainForm.OnTabMainSelectedIndexChanged (System.Object sender, System.EventArgs e) [0x00000] in :0 at System.Windows.Forms.TabControl.OnSelectedIndexChanged (System.EventArgs e) [0x00000] in :0 at System.Windows.Forms.TabControl.set_SelectedIndex (Int32 value) [0x00000] in :0 at System.Windows.Forms.TabControl.MouseDownHandler (System.Object sender, System.Windows.Forms.MouseEventArgs e) [0x00000] in :0 at System.Windows.Forms.Control.OnMouseDown (System.Windows.Forms.MouseEventArgs e) [0x00000] in :0 at System.Windows.Forms.Control.WmLButtonDown (System.Windows.Forms.Message& m) [0x00000] in :0 at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in :0 at System.Windows.Forms.TabControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in :0 at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in :0 at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in :0 at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in :0 Unhandled Exception: System.ArgumentException: A null reference or invalid value was found [GDI+ status: InvalidParameter] at System.Drawing.GDIPlus.CheckStatus (Status status) [0x00000] in :0 at System.Drawing.Graphics.GdipMeasureString (IntPtr graphics, System.String text, System.Drawing.Font font, System.Drawing.RectangleF& layoutRect, IntPtr stringFormat) [0x00000] in :0 at System.Drawing.Graphics.MeasureString (System.String text, System.Drawing.Font font, Int32 width, System.Drawing.StringFormat format) [0x00000] in :0 at (wrapper remoting-invoke-with-check) System.Drawing.Graphics:MeasureString (string,System.Drawing.Font,int,System.Drawing.StringFormat) at System.Windows.Forms.TextRenderer.MeasureTextInternal (IDeviceContext dc, System.String text, System.Drawing.Font font, Size proposedSize, TextFormatFlags flags, Boolean useMeasureString) [0x00000] in :0 at System.Windows.Forms.TextRenderer.MeasureText (System.String text, System.Drawing.Font font) [0x00000] in :0 at System.Windows.Forms.ToolStripMenuItem.CalculatePreferredSize (Size constrainingSize) [0x00000] in :0 at System.Windows.Forms.ToolStripItem.GetPreferredSize (Size constrainingSize) [0x00000] in :0 at System.Windows.Forms.ToolStripDropDownMenu.OnLayout (System.Windows.Forms.LayoutEventArgs e) [0x00000] in :0 at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) [0x00000] in :0 at System.Windows.Forms.Control.PerformLayout () [0x00000] in :0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:PerformLayout () at System.Windows.Forms.ToolStripItem.OnParentChanged (System.Windows.Forms.ToolStrip oldParent, System.Windows.Forms.ToolStrip newParent) [0x00000] in :0 at System.Windows.Forms.ToolStripItem.set_Parent (System.Windows.Forms.ToolStrip value) [0x00000] in :0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.ToolStripItem:set_Parent (System.Windows.Forms.ToolStrip) at System.Windows.Forms.ToolStripItemCollection.Remove (System.Windows.Forms.ToolStripItem value) [0x00000] in :0 at System.Windows.Forms.ToolStripItem.Dispose (Boolean disposing) [0x00000] in :0 at System.Windows.Forms.ToolStripDropDownItem.Dispose (Boolean disposing) [0x00000] in :0 at System.Windows.Forms.ToolStripMenuItem.Dispose (Boolean disposing) [0x00000] in :0 at System.ComponentModel.Component.Finalize () [0x00000] in :0