diff --git a/GraphRewriting/GL/Menu.hs b/GraphRewriting/GL/Menu.hs
--- a/GraphRewriting/GL/Menu.hs
+++ b/GraphRewriting/GL/Menu.hs
@@ -17,7 +17,9 @@
 setupMenu globalVars = do
 	c ← liftM canvas $ readIORef globalVars
 	ruleTree ← getRules <$> readIORef globalVars
-	winWidth ← liftM fromIntegral <$> (+) <$> (stringWidth font $ showRuleTree ruleTree) <*> stringWidth font "0"
+	charWidth ← stringWidth font "0"
+	let cols = fromIntegral $ maximum $ map length $ lines $ showRuleTree ruleTree
+	let winWidth = (cols + 1) * min 10 charWidth
 	let ruleListLength = numNodes ruleTree
 	let winSize = Size winWidth (fromIntegral $ menuItemHeight * ruleListLength)
 	menu ← createSubWindow c (GL.Position 0 0) winSize
diff --git a/graph-rewriting-gl.cabal b/graph-rewriting-gl.cabal
--- a/graph-rewriting-gl.cabal
+++ b/graph-rewriting-gl.cabal
@@ -1,5 +1,5 @@
 Name:           graph-rewriting-gl
-Version:        0.7.3
+Version:        0.7.4
 Copyright:      (c) 2010, Jan Rochel
 License:        BSD3
 License-File:   LICENSE
@@ -16,13 +16,13 @@
 
 Library
   Build-Depends:
-    base >= 4 && < 4.6,
+    base >= 4 && < 4.7,
     base-unicode-symbols >= 0.2 && < 0.3,
     graph-rewriting >= 0.7 && < 0.8,
     graph-rewriting-layout >= 0.4 && < 0.6,
-    GLUT >= 2.2 && < 2.5,
-    OpenGL >= 2.4 && < 2.9,
-    containers >= 0.3 && < 0.5,
+    GLUT >= 2.2 && < 2.6,
+    OpenGL >= 2.4 && < 2.10,
+    containers >= 0.3 && < 0.6,
     AC-Vector >= 2.3 && < 2.4
   Exposed-Modules:
     GraphRewriting.GL.UI
