diff --git a/Plot-ho-matic.cabal b/Plot-ho-matic.cabal
--- a/Plot-ho-matic.cabal
+++ b/Plot-ho-matic.cabal
@@ -1,5 +1,5 @@
 name:                Plot-ho-matic
-version:             0.7.0.0
+version:             0.7.0.1
 synopsis:            Real-time line plotter for generic data
 license:             BSD3
 license-file:        LICENSE
diff --git a/src/PlotHo.hs b/src/PlotHo.hs
--- a/src/PlotHo.hs
+++ b/src/PlotHo.hs
@@ -379,15 +379,29 @@
   _ <- Gtk.onClicked buttonDoNothing $
        putStrLn "seriously, it does nothing"
 
-  -- vbox to hold buttons and list of channel
+  -- box to hold list of channels
+  channelBox <- Gtk.vBoxNew False 4
+  Gtk.set channelBox $
+    concatMap (\x -> [ Gtk.containerChild := x
+                     , Gtk.boxChildPacking x := Gtk.PackNatural
+                     ]) chanWidgets
+
+  -- scroll to hold channel box
+  scroll <- Gtk.scrolledWindowNew Nothing Nothing
+  Gtk.scrolledWindowAddWithViewport scroll channelBox
+  Gtk.set scroll [ Gtk.scrolledWindowHscrollbarPolicy := Gtk.PolicyNever
+                 , Gtk.scrolledWindowVscrollbarPolicy := Gtk.PolicyAutomatic
+                 ]
+
+  -- vbox to hold everything
   vbox <- Gtk.vBoxNew False 4
   Gtk.set vbox $
     [ Gtk.containerChild := statsLabel
     , Gtk.boxChildPacking statsLabel := Gtk.PackNatural
     , Gtk.containerChild := buttonDoNothing
-    ] ++ concatMap (\x -> [ Gtk.containerChild := x
-                          , Gtk.boxChildPacking x := Gtk.PackNatural
-                          ]) chanWidgets
+    , Gtk.boxChildPacking buttonDoNothing := Gtk.PackNatural
+    , Gtk.containerChild := scroll
+    ]
 
   -- add widget to window and show
   _ <- Gtk.set win [ Gtk.containerChild := vbox ]
