diff --git a/src/Graphics/UI/WX.hs b/src/Graphics/UI/WX.hs
--- a/src/Graphics/UI/WX.hs
+++ b/src/Graphics/UI/WX.hs
@@ -1,16 +1,16 @@
 --------------------------------------------------------------------------------
-{-|	Module      :  WX
-	Copyright   :  (c) Daan Leijen 2003
-	License     :  wxWindows
+{-| Module      :  WX
+    Copyright   :  (c) Daan Leijen 2003
+    License     :  wxWindows
 
-	Maintainer  :  wxhaskell-devel@lists.sourceforge.net
-	Stability   :  provisional
-	Portability :  portable
+    Maintainer  :  wxhaskell-devel@lists.sourceforge.net
+    Stability   :  provisional
+    Portability :  portable
 
 The WX module just re-exports functionality from helper modules and
 defines the 'start' function.
 
-The WX library provides a /haskellized/ interface to the raw wxWindows
+The WX library provides a /haskellized/ interface to the raw wxWidgets
 functionality provided by the "Graphics.UI.WXCore" library.
 -}
 --------------------------------------------------------------------------------
diff --git a/src/Graphics/UI/WX/Attributes.hs b/src/Graphics/UI/WX/Attributes.hs
--- a/src/Graphics/UI/WX/Attributes.hs
+++ b/src/Graphics/UI/WX/Attributes.hs
@@ -1,12 +1,12 @@
 {-# LANGUAGE ExistentialQuantification #-}
 --------------------------------------------------------------------------------
-{-|	Module      :  Attributes
-	Copyright   :  (c) Daan Leijen 2003
-	License     :  wxWindows
+{-| Module      :  Attributes
+    Copyright   :  (c) Daan Leijen 2003
+    License     :  wxWindows
 
-	Maintainer  :  wxhaskell-devel@lists.sourceforge.net
-	Stability   :  provisional
-	Portability :  portable
+    Maintainer  :  wxhaskell-devel@lists.sourceforge.net
+    Stability   :  provisional
+    Portability :  portable
 
 
 Widgets @w@ can have attributes of type @a@ represented by the type 'Attr' @w a@.
@@ -93,7 +93,14 @@
                 | forall a. Attr w a ::= (w -> a) -- ^ Assign a value to an attribute with the widget as argument.
                 | forall a. Attr w a ::~ (w -> a -> a) -- ^ Apply an update function to an attribute with the widget as an argument.
 
+-- For debugging purposes
+instance Show a => Show (Prop a) where
+  show ((Attr string _ _ _ _) :=  _) = "Attr \"" ++ string ++ "\" _ _ _ _ :=  _"
+  show ((Attr string _ _ _ _) :~  _) = "Attr \"" ++ string ++ "\" _ _ _ _ :~  _"
+  show ((Attr string _ _ _ _) ::= _) = "Attr \"" ++ string ++ "\" _ _ _ _ ::= _"
+  show ((Attr string _ _ _ _) ::~ _) = "Attr \"" ++ string ++ "\" _ _ _ _ ::~ _"
 
+
 -- | An attribute that should be specified at creation time. Just for documentation purposes.
 type CreateAttr w a = Attr w a
 
@@ -107,6 +114,11 @@
 data Attr w a   = Attr String (Maybe (a -> Dynamic, Dynamic -> Maybe a))  -- name, dynamic conversion
                               (w -> IO a) (w -> a -> IO ())               -- getter setter 
                               (w -> (a -> a) -> IO a)                     -- updater      
+
+-- For debugging purposes
+instance Show a => Show (Attr w a) where
+  show (Attr string _ _ _ _) =
+    "Attr \"" ++ string ++ "\" _ _ _ _"
 
 
 -- | Cast attributes.
diff --git a/src/Graphics/UI/WX/Classes.hs b/src/Graphics/UI/WX/Classes.hs
--- a/src/Graphics/UI/WX/Classes.hs
+++ b/src/Graphics/UI/WX/Classes.hs
@@ -1,12 +1,12 @@
 {-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, DeriveDataTypeable, ScopedTypeVariables #-}
 --------------------------------------------------------------------------------
-{-|	Module      :  Classes
-	Copyright   :  (c) Daan Leijen 2003
-	License     :  wxWindows
+{-| Module      :  Classes
+    Copyright   :  (c) Daan Leijen 2003
+    License     :  wxWindows
 
-	Maintainer  :  wxhaskell-devel@lists.sourceforge.net
-	Stability   :  provisional
-	Portability :  portable
+    Maintainer  :  wxhaskell-devel@lists.sourceforge.net
+    Stability   :  provisional
+    Portability :  portable
 
 This modules defines attributes common to many widgets and
 organizes them into Haskell classes. Look at the instance definitions
@@ -287,9 +287,9 @@
   -- | Is the widget checked?
   checked   :: Attr w Bool
 
--- | The identity determines the wxWindows ID of a widget.
+-- | The identity determines the wxWidgets ID of a widget.
 class Identity w where
-  -- | The identity determines the wxWindows ID of a widget.
+  -- | The identity determines the wxWidgets ID of a widget.
   identity :: Attr w Int
 
 
diff --git a/src/Graphics/UI/WX/Controls.hs b/src/Graphics/UI/WX/Controls.hs
--- a/src/Graphics/UI/WX/Controls.hs
+++ b/src/Graphics/UI/WX/Controls.hs
@@ -1,13 +1,13 @@
 {-# LANGUAGE TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses, DeriveDataTypeable #-}
 --------------------------------------------------------------------------------
-{-|	Module      :  Controls
-	Copyright   :  (c) Daan Leijen 2003
-	               (c) Shelarcy (shelarcy@gmail.com) 2006
-	License     :  wxWindows
+{-| Module      :  Controls
+    Copyright   :  (c) Daan Leijen 2003
+                   (c) Shelarcy (shelarcy@gmail.com) 2006
+    License     :  wxWindows
 
-	Maintainer  :  wxhaskell-devel@lists.sourceforge.net
-	Stability   :  provisional
-	Portability :  portable
+    Maintainer  :  wxhaskell-devel@lists.sourceforge.net
+    Stability   :  provisional
+    Portability :  portable
 
 Defines common GUI controls.
 -}
@@ -45,6 +45,9 @@
       , Slider, hslider, vslider, sliderEx, sliderRes
       -- ** Gauge
       , Gauge, hgauge, vgauge, gaugeEx, gaugeRes
+      -- ** ToggleButton
+      , ToggleButton, BitmapToggleButton
+      , toggleButton, bitmapToggleButton
       -- ** Tree control
       , TreeCtrl, treeCtrl, treeCtrlEx, treeEvent, treeCtrlRes
       -- ** List control
@@ -95,7 +98,7 @@
 --
 -- * Instances: 'Form' -- 'Dimensions', 'Colored', 'Visible', 'Child',
 --             'Able', 'Tipped', 'Identity', 'Styled',
---             'Textual', 'Literate'
+--             'Textual', 'Literate', 'Reactive', 'Paint'
 panel :: Window a -> [Prop (Panel ())] -> IO (Panel ())
 panel parent props
   = panelEx parent (wxTAB_TRAVERSAL .+. defaultStyle) props
@@ -197,10 +200,10 @@
 instance Commanding (Button a) where
   command  = newEvent "command" buttonGetOnCommand buttonOnCommand
 
--- | Create a bitmap button. Use the 'image' attribute to set the
+-- | Create a bitmap button. Use the 'picture' attribute to set the
 -- bitmap.
 --
--- * Instances: 'Commanding' -- 'Textual', 'Literate', 'Dimensions', 'Colored', 'Visible', 'Child',
+-- * Instances: 'Commanding', 'Pictured' -- 'Textual', 'Literate', 'Dimensions', 'Colored', 'Visible', 'Child',
 --             'Able', 'Tipped', 'Identity', 'Styled', 'Reactive', 'Paint'.
 --
 bitmapButton :: Window a -> [Prop (BitmapButton ())] -> IO (BitmapButton ())
@@ -209,12 +212,13 @@
     initialWindow $ \id rect -> \props flags ->
     do bb <- bitmapButtonCreate parent id nullBitmap rect flags
        set bb props
+       windowReLayout bb
        return bb
 
 -- | Complete the construction of a bitmap button instance which has been loaded
 --   from a resource file.
 --
--- * Instances: 'Commanding' -- 'Textual', 'Literate', 'Dimensions', 'Colored', 'Visible', 'Child',
+-- * Instances: 'Commanding', 'Pictured' -- 'Textual', 'Literate', 'Dimensions', 'Colored', 'Visible', 'Child',
 --             'Able', 'Tipped', 'Identity', 'Styled', 'Reactive', 'Paint'.
 --
 bitmapButtonRes :: Window a -> String -> [Prop (BitmapButton ())] -> IO (BitmapButton ())
@@ -732,7 +736,7 @@
 --
 multiListBox :: Window a -> [Prop (MultiListBox ())] -> IO (MultiListBox ())
 multiListBox parent props
-  = feed2 props (wxLB_MULTIPLE .+. wxLB_EXTENDED .+. wxHSCROLL .+. wxLB_NEEDED_SB) $
+  = feed2 props (wxLB_EXTENDED .+. wxHSCROLL .+. wxLB_NEEDED_SB) $
     initialWindow $ \id rect ->
     initialSorted $ \props flags ->
     do lb <- listBoxCreate parent id rect [] flags
@@ -963,6 +967,53 @@
 instance Selecting (SpinCtrl a) where
   select 
     = newEvent "select" spinCtrlGetOnCommand spinCtrlOnCommand
+
+{--------------------------------------------------------------------------------
+  ToggleButton
+--------------------------------------------------------------------------------}
+-- | Create a toggle button. 
+--
+-- * Instances: 'Commanding', 'Checkable',  -- 'Textual', 'Literate', 'Dimensions', 'Colored', 'Visible', 'Child',
+--             'Able', 'Tipped', 'Identity', 'Styled', 'Reactive', 'Paint'.
+--
+toggleButton :: Window a -> [Prop (ToggleButton ())] -> IO (ToggleButton ())
+toggleButton parent props
+  = feed2 props defaultStyle $
+    initialWindow $ \id rect -> \props flags ->
+    do bb <- toggleButtonCreate parent id "" rect flags
+       set bb props
+       return bb
+
+instance Commanding (ToggleButton a) where
+  command  = newEvent "command" toggleButtonGetOnCommand toggleButtonOnCommand
+
+instance Checkable (ToggleButton a) where
+  checkable = enabled 
+  checked   = newAttr "checked" toggleButtonGetValue toggleButtonSetValue
+
+-- | Create a bitmap toggle button. Use the 'picture' attribute to set the
+-- bitmap.
+--
+-- * Instances: 'Commanding', 'Pictured' -- 'Textual', 'Literate', 'Dimensions', 'Colored', 'Visible', 'Child',
+--             'Able', 'Tipped', 'Identity', 'Styled', 'Reactive', 'Paint'.
+--
+bitmapToggleButton :: Window a -> [Prop (BitmapToggleButton ())] -> IO (BitmapToggleButton ())
+bitmapToggleButton parent props
+  = feed2 props defaultStyle $
+    initialWindow $ \id rect -> \props flags ->
+    do img <- imageCreateFromPixels (Size 1 1) [black]
+       bm  <- bitmapCreateFromImage img (-1)
+       bb  <- bitmapToggleButtonCreate parent id bm rect flags
+       set bb props
+       return bb
+
+instance Pictured (BitmapToggleButton a) where
+  picture
+    = writeAttr "picture" setter
+    where
+      setter w fname
+        = do fpath <- getAbsoluteFilePath fname
+             withBitmapFromFile fpath (bitmapToggleButtonSetBitmapLabel w)
 
 
 {--------------------------------------------------------------------------------
diff --git a/src/Graphics/UI/WX/Dialogs.hs b/src/Graphics/UI/WX/Dialogs.hs
--- a/src/Graphics/UI/WX/Dialogs.hs
+++ b/src/Graphics/UI/WX/Dialogs.hs
@@ -1,12 +1,12 @@
 {-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
 --------------------------------------------------------------------------------
-{-|	Module      :  Dialogs
-	Copyright   :  (c) Daan Leijen 2003
-	License     :  wxWindows
+{-| Module      :  Dialogs
+    Copyright   :  (c) Daan Leijen 2003
+    License     :  wxWindows
 
-	Maintainer  :  wxhaskell-devel@lists.sourceforge.net
-	Stability   :  provisional
-	Portability :  portable
+    Maintainer  :  wxhaskell-devel@lists.sourceforge.net
+    Stability   :  provisional
+    Portability :  portable
 
 Defines common dialogs.
 
diff --git a/src/Graphics/UI/WX/Frame.hs b/src/Graphics/UI/WX/Frame.hs
--- a/src/Graphics/UI/WX/Frame.hs
+++ b/src/Graphics/UI/WX/Frame.hs
@@ -11,10 +11,10 @@
 
 Frames.
     
-* Instances: 'HasImage', 'Form', 'Closeable', 'Framed' -- 
-             'Textual', 'Literate', 'Dimensions', 'Colored', 'Visible', 'Child', 
+* Instances: 'Form', 'Closeable', 'Framed' --
+             'Textual', 'Literate', 'Dimensions', 'Colored', 'Visible', 'Child',
              'Able', 'Tipped', 'Identity', 'Styled', 'Reactive', 'Paint',
-	     'HasDefault'.
+             'HasDefault'.
              
 
 -}
diff --git a/src/Graphics/UI/WX/Menu.hs b/src/Graphics/UI/WX/Menu.hs
--- a/src/Graphics/UI/WX/Menu.hs
+++ b/src/Graphics/UI/WX/Menu.hs
@@ -301,13 +301,13 @@
   1) As an "on command" on the menu item itself. 
   2) With an "on (menu xxx)" on a window. 
 
-  Unfortunately, wxWindows does not support method (1) for menus that are
+  Unfortunately, wxWidgets does not support method (1) for menus that are
   part of a menubar and assumes they are set on using (2) on the associated
-  frame. We can't tell whether a menu is part of a menubar or popupmenu untill
-  the user sets it. Thus we both set the eventhandlers always directly on the
+  frame. We can't tell whether a menu is part of a menubar or popup menu until
+  the user sets it. Thus we both set the event handlers always directly on the
   top level menu (this is good enough for popup menus) and we maintain 
   a list of menu item id's and associated event handler as client data on the
-  top level menu. When the menu is set as part of a menubar, we install the
+  top level menu. When the menu is set as part of a menu bar, we install the
   handlers on the associated frame.
 --------------------------------------------------------------------------------}
 instance Commanding (MenuItem a) where
@@ -326,7 +326,7 @@
        topmenu <- menuItemGetTopMenu item
        -- always set it on the menu itself (has only effect on popup menus)
        evtHandlerOnMenuCommand topmenu id io
-       -- update the haskell event handler list for delayed frame installation
+       -- update the Haskell event handler list for delayed frame installation
        menuUpdateEvtHandlers topmenu (insert id io)
        -- and set it directly on the frame if already instantiated. 
        frame   <- menuGetFrame topmenu
@@ -443,7 +443,7 @@
 --
 -- * Events: 'tool'
 --
--- * Instances: 'Textual', 'Able', 'Help', 'Tipped', 'Checkable', 'Identity', 'Commanding'.
+-- * Instances: 'Able', 'Help', 'Tipped', 'Checkable', 'Identity', 'Commanding'.
 --
 data ToolBarItem  = ToolBarItem (ToolBar ()) Id Bool
 
@@ -526,7 +526,7 @@
       = evtHandlerOnMenuCommand w id io
 
 -- | Create a tool bar item based on a menu. Takes a a relevant menu
--- item, a label and an image file (bmp,png,gif,ico,etc.) as arguments. The image
+-- item, a label and an image file (bmp, png, gif, ico, etc.) as arguments. The image
 -- file is normally 16x15 pixels.
 -- The toolbar item will fire the relevant menu items just as if the menu has been selected.
 -- Checkable menus will give a checkable toolbar item. Beware though that checkable tools
@@ -555,7 +555,7 @@
 
 -- | Create an /orphan/ toolbar item that is unassociated with a menu. Takes a 
 -- label, a flag that is 'True' when the item is 'checkable' and a path to an image
--- (bmp,png,gif,ico,etc.) as arguments.
+-- (bmp, png, gif, ico, etc.) as arguments.
 toolItem :: ToolBar a -> String -> Bool -> FilePath -> [Prop ToolBarItem] -> IO ToolBarItem
 toolItem toolbar label isCheckable bitmapPath props
   = withBitmapFromFile bitmapPath $ \bitmap ->
@@ -586,11 +586,11 @@
 data StatusField  = SF (Var Int) (Var (StatusBar ())) (Var Int) (Var String)
 
 -- | The status width attribute determines the width of a status bar field.
--- A negative width makes the field strechable. The width than determines
--- the amount of stretch in relation with other fields. The default 
+-- A negative width makes the field stretchable. The width than determines
+-- the amount of stretch in relation to other fields. The default
 -- status width is @-1@, ie. all fields stretch evenly.
 --
--- Here is an example of a statusbar
+-- Here is an example of a status bar
 -- with three fields, where the last field is 50 pixels wide, the first takes
 -- 66% of the remaining space and the second field 33%.
 --
diff --git a/src/Graphics/UI/WX/TopLevelWindow.hs b/src/Graphics/UI/WX/TopLevelWindow.hs
--- a/src/Graphics/UI/WX/TopLevelWindow.hs
+++ b/src/Graphics/UI/WX/TopLevelWindow.hs
@@ -14,7 +14,7 @@
 In the wxHaskell implementation, TopLevel has been added to encapsulate 
 some of the common functionality between the 'Dialog' and 'Frame' modules.
          
-* Instances: 'HasDefault'
+* Instances: 'HasDefault', 'Pictured', 'Framed', 'Form', 'Closeable'
 * Instances inherited from 'Window': 'Textual', 'Literate', 'Dimensions', 
              'Colored', 'Visible', 'Child', 'Able', 'Tipped', 'Identity', 
              'Styled', 'Reactive', 'Paint'.   
diff --git a/src/Graphics/UI/WX/Window.hs b/src/Graphics/UI/WX/Window.hs
--- a/src/Graphics/UI/WX/Window.hs
+++ b/src/Graphics/UI/WX/Window.hs
@@ -10,7 +10,8 @@
 
 Exports default instances for generic windows.
 
-* Instances: 'Textual', 'Literate', 'Dimensions', 'Colored', 'Visible', 'Child', 
+* Instances: 'Textual', 'Literate', 'Dimensions', 'Colored', 'Visible',
+             'Child', 'Sized', 'Parent', 'Help', 'Bordered',
              'Able', 'Tipped', 'Identity', 'Styled', 'Reactive', 'Paint'.             
 -}
 --------------------------------------------------------------------------------
diff --git a/wx.cabal b/wx.cabal
--- a/wx.cabal
+++ b/wx.cabal
@@ -1,5 +1,5 @@
 Name:           wx
-Version:        0.90.0.1
+Version:        0.90.1.0
 License:        OtherLicense
 License-file:   license.txt
 Homepage:       http://haskell.org/haskellwiki/WxHaskell
@@ -24,7 +24,7 @@
 
 Library
     if flag(splitBase)
-        build-depends: wxcore >= 0.90,
+        build-depends: wxcore >= 0.90.1.0,
                        stm
         if flag(newBase)
             build-depends:
@@ -34,7 +34,7 @@
                 base >= 3 && < 4
     else
         build-depends: base <  3, 
-                       wxcore >= 0.90,
+                       wxcore >= 0.90.1.0,
                        stm
 
  Exposed-Modules:
