diff --git a/src/VCSGui/Common/Commit.hs b/src/VCSGui/Common/Commit.hs
--- a/src/VCSGui/Common/Commit.hs
+++ b/src/VCSGui/Common/Commit.hs
@@ -28,7 +28,7 @@
 import Control.Monad.Trans(liftIO)
 import Control.Monad
 import Control.Monad.Reader
-import Maybe
+import Data.Maybe
 import Paths_vcsgui(getDataFileName)
 
 --
diff --git a/src/VCSGui/Common/GtkHelper.hs b/src/VCSGui/Common/GtkHelper.hs
--- a/src/VCSGui/Common/GtkHelper.hs
+++ b/src/VCSGui/Common/GtkHelper.hs
@@ -261,7 +261,7 @@
 
 -- | Close a window.
 closeWin :: WindowItem -> IO ()
-closeWin win = (Gtk.widgetHideAll (getItem win))
+closeWin win = (Gtk.widgetHide (getItem win))
 
 -- | Close a window if 'Gtk.deleteEvent' occurs on this 'WindowItem'.
 registerClose :: WindowItem -> IO ()
diff --git a/src/VCSGui/Common/SetupConfig.hs b/src/VCSGui/Common/SetupConfig.hs
--- a/src/VCSGui/Common/SetupConfig.hs
+++ b/src/VCSGui/Common/SetupConfig.hs
@@ -18,8 +18,8 @@
 import Graphics.UI.Gtk hiding (set, get)
 import Control.Monad.Trans(liftIO)
 import Data.Maybe
-import Monad
-import Directory
+import Control.Monad
+import System.Directory
 import System.Directory(doesDirectoryExist)
 import Data.List.Utils(elemRIndex)
 import Data.List(isInfixOf)
@@ -160,9 +160,9 @@
                                                     widgetShowAll (H.getItem (entExec gui))
                                                     widgetShowAll (H.getItem (btnBrowseExec gui))
                                                 else do
-                                                    widgetHideAll (H.getItem (lblExec gui))
-                                                    widgetHideAll (H.getItem (entExec gui))
-                                                    widgetHideAll (H.getItem (btnBrowseExec gui))
+                                                    widgetHide (H.getItem (lblExec gui))
+                                                    widgetHide (H.getItem (entExec gui))
+                                                    widgetHide (H.getItem (btnBrowseExec gui))
 
         on (H.getItem (checkbtAuthor gui)) toggled $ do
                                             putStrLn "checkbtnauthor toogled"
@@ -173,10 +173,10 @@
                                                     widgetShowAll (H.getItem (lblEmail gui))
                                                     widgetShowAll (H.getItem (entEmail gui))
                                                 else do
-                                                    widgetHideAll (H.getItem (lblAuthor gui))
-                                                    widgetHideAll (H.getItem (entAuthor gui))
-                                                    widgetHideAll (H.getItem (lblEmail gui))
-                                                    widgetHideAll (H.getItem (entEmail gui))
+                                                    widgetHide (H.getItem (lblAuthor gui))
+                                                    widgetHide (H.getItem (entAuthor gui))
+                                                    widgetHide (H.getItem (lblEmail gui))
+                                                    widgetHide (H.getItem (entEmail gui))
                                             return ()
         liftIO $ on (H.getItem (actBrowsePathToTool gui)) actionActivated $ do
             mbPath <- showFolderChooserDialog "Select executable" (H.getItem $ winSetupRepo gui) FileChooserActionOpen
diff --git a/src/VCSGui/Git/Log.hs b/src/VCSGui/Git/Log.hs
--- a/src/VCSGui/Git/Log.hs
+++ b/src/VCSGui/Git/Log.hs
@@ -49,12 +49,12 @@
     askForNewBranchname = do
         dialog <- Gtk.dialogNew
         Gtk.dialogAddButton dialog "gtk-ok" Gtk.ResponseOk
-        upper <- Gtk.dialogGetUpper dialog
+        upper <- Gtk.dialogGetContentArea dialog
 
         inputBranch <- Gtk.entryNew
         lblBranch <- Gtk.labelNew $ Just "Enter a new branchname (empty for anonym branch):"
         box <- Gtk.hBoxNew False 2
-        Gtk.containerAdd upper box
+        Gtk.containerAdd (Gtk.castToBox upper) box
         Gtk.containerAdd box lblBranch
         Gtk.containerAdd box inputBranch
 
diff --git a/src/VCSGui/Svn/AskPassword.hs b/src/VCSGui/Svn/AskPassword.hs
--- a/src/VCSGui/Svn/AskPassword.hs
+++ b/src/VCSGui/Svn/AskPassword.hs
@@ -89,7 +89,7 @@
                                             if active then
                                                     widgetShowAll (boxUsePwd gui)
                                                 else
-                                                    widgetHideAll (boxUsePwd gui)
+                                                    widgetHide (boxUsePwd gui)
         -- present window
         widgetShowAll $ H.getItem $ windowAskpass gui
         return ()
diff --git a/src/VCSGui/Svn/Checkout.hs b/src/VCSGui/Svn/Checkout.hs
--- a/src/VCSGui/Svn/Checkout.hs
+++ b/src/VCSGui/Svn/Checkout.hs
@@ -23,7 +23,7 @@
 import qualified VCSWrapper.Svn as Svn
 import qualified VCSGui.Common.GtkHelper as H
 import Paths_vcsgui(getDataFileName)
-import Maybe
+import Data.Maybe
 --
 -- glade path and object accessors
 --
diff --git a/vcsgui.cabal b/vcsgui.cabal
--- a/vcsgui.cabal
+++ b/vcsgui.cabal
@@ -1,5 +1,5 @@
 name: vcsgui
-version: 0.0.1
+version: 0.0.2
 cabal-version: >= 1.8
 build-type: Simple
 license: GPL
@@ -13,7 +13,7 @@
     Provides library functions to expose some commonly needed scm tasks to the user.
     Uses GTK+ and GTKBuilder to organize and display windows.
     Uses vcswrapper to acces the scm functions.
-    Currently git and SVN are supported.
+    Currently git, SVN and mercurial (hg) are supported.
 category: Development
 author: Stephan Fortelny, Harald Jagenteufel
 tested-with: GHC == 7.0
@@ -28,16 +28,23 @@
             data/guiCommonMergeTool.glade
             data/guiCommonConflictsResolved.glade
 data-dir: ""
+
+flag gtk3
+    description: Use Gtk3
+    default: True
+
 library
-    build-depends: MissingH >=1.1.0.3 && <1.2,
-               filepath >=1.2.0.0 && < 1.3,
-               base >=4.0.0.0 && <4.4,
-               directory >=1.1.0.0 && <1.2,
-               haskell98 >=1.1.0.1 && <1.2,
-               mtl >=2.0.1.0 && <2.1,
-               vcswrapper ==0.0.1,
-               process >=1.0.1.5 && <1.1,
-               gtk >=0.12.0 && <0.13
+    build-depends: MissingH >=1.1.0.3 && <1.3,
+               filepath >=1.2.0.0 && < 1.4,
+               base >=4.0.0.0 && <4.8,
+               directory >=1.1.0.0 && <1.3,
+               mtl >=2.0.1.0 && <2.2,
+               vcswrapper ==0.0.2,
+               process >=1.0.1.5 && <1.3
+    if flag(gtk3)
+      build-depends: gtk3 >=0.12.4.1 && <0.13
+    else
+      build-depends: gtk >=0.12.4.1 && <0.13
     exposed-modules: VCSGui.Common VCSGui.Git VCSGui.Svn VCSGui.Mercurial
     exposed: True
     buildable: True
@@ -56,15 +63,17 @@
 
 executable vcsgui
     main-is: Main.hs
-    build-depends: MissingH >=1.1.0.3 && <1.2,
-               filepath >=1.2.0.0 && < 1.3,
-               base >=4.0.0.0 && <4.4,
-               directory >=1.1.0.0 && <1.2,
-               haskell98 >=1.1.0.1 && <1.2,
-               mtl >=2.0.1.0 && <2.1,
-               vcswrapper ==0.0.1,
-               process >=1.0.1.5 && <1.1,
-               gtk >=0.12.0 && <0.13
+    build-depends: MissingH >=1.1.0.3 && <1.3,
+               filepath >=1.2.0.0 && < 1.4,
+               base >=4.0.0.0 && <4.8,
+               directory >=1.1.0.0 && <1.3,
+               mtl >=2.0.1.0 && <2.2,
+               vcswrapper ==0.0.2,
+               process >=1.0.1.5 && <1.3
+    if flag(gtk3)
+      build-depends: gtk3 >=0.12.4.1 && <0.13
+    else
+      build-depends: gtk >=0.12.4.1 && <0.13
     buildable: True
     hs-source-dirs: src
     other-modules: VCSGui.Svn.Helper VCSGui.Common.Process
@@ -80,15 +89,17 @@
 
 executable vcsgui-askpass
     main-is: Main.hs
-    build-depends: MissingH >=1.1.0.3 && <1.2,
-               filepath >=1.2.0.0 && < 1.3,
-               base >=4.0.0.0 && <4.4,
-               directory >=1.1.0.0 && <1.2,
-               haskell98 >=1.1.0.1 && <1.2,
-               mtl >=2.0.1.0 && <2.1,
-               vcswrapper ==0.0.1,
-               process >=1.0.1.5 && <1.1,
-               gtk >=0.12.0 && <0.13
+    build-depends: MissingH >=1.1.0.3 && <1.3,
+               filepath >=1.2.0.0 && < 1.4,
+               base >=4.0.0.0 && <4.8,
+               directory >=1.1.0.0 && <1.3,
+               mtl >=2.0.1.0 && <2.2,
+               vcswrapper ==0.0.2,
+               process >=1.0.1.5 && <1.3
+    if flag(gtk3)
+      build-depends: gtk3 >=0.12.4.1 && <0.13
+    else
+      build-depends: gtk >=0.12.4.1 && <0.13
     buildable: True
     hs-source-dirs: src/exe/askpass src
     other-modules: VCSGui.Svn.Helper VCSGui.Common.Process
