diff --git a/Graphics/UI/Gtk/Abstract/Box.chs b/Graphics/UI/Gtk/Abstract/Box.chs
--- a/Graphics/UI/Gtk/Abstract/Box.chs
+++ b/Graphics/UI/Gtk/Abstract/Box.chs
@@ -116,10 +116,24 @@
   boxReorderChild,
   boxQueryChildPacking,
   boxSetChildPacking,
+#if GTK_CHECK_VERSION(3,10,0)
+  boxGetBaselinePosition,
+  boxSetBaselinePosition,
+#endif
+#if GTK_CHECK_VERSION(3,12,0)
+  boxGetCenterWidget,
+  boxSetCenterWidget,
+#endif
 
 -- * Attributes
   boxSpacing,
   boxHomogeneous,
+#if GTK_CHECK_VERSION(3,10,0)
+  boxBaselinePosition,
+#endif
+#if GTK_CHECK_VERSION(3,12,0)
+  boxCenterWidget,
+#endif
 
 -- * Child Attributes
   boxChildPacking,
@@ -137,6 +151,13 @@
                                         toPacking, fromPacking)
 import Graphics.UI.Gtk.Abstract.ContainerChildProperties
 
+#if GTK_CHECK_VERSION(3,10,0)
+import Graphics.UI.Gtk.General.Enums    (BaselinePosition)
+#endif
+#if GTK_CHECK_VERSION(3,12,0)
+import Graphics.UI.Gtk.Abstract.Object  (makeNewObject)
+#endif
+
 {# context lib="gtk" prefix="gtk" #}
 
 --------------------
@@ -321,6 +342,51 @@
     ((fromIntegral . fromEnum) packType)
   where (expand, fill) = fromPacking packing
 
+#if GTK_CHECK_VERSION(3,10,0)
+-- | Gets the value set by `boxSetBaselinePostion`
+boxGetBaselinePosition :: BoxClass self => self
+ -> IO BaselinePosition
+boxGetBaselinePosition self =
+  liftM (toEnum . fromIntegral) $
+  {# call unsafe box_get_baseline_position #}
+    (toBox self)
+
+-- | Sets the baseline position of a box. This affects only
+-- horizontal boxes with at least one baseline aligned child.
+-- If there is more vertical space available than requested,
+-- and the baseline is not allocated by the parent then
+-- `position` is used to allocate the baseline wrt the extra
+-- space available.
+boxSetBaselinePosition :: BoxClass self => self
+ -> BaselinePosition
+ -> IO ()
+boxSetBaselinePosition self position =
+  {# call unsafe box_set_baseline_position #}
+    (toBox self)
+    (fromIntegral $ fromEnum position)
+#endif
+
+#if GTK_CHECK_VERSION(3,12,0)
+-- | Retrieves the center widget of the box.
+boxGetCenterWidget :: BoxClass self => self
+ -> IO Widget
+boxGetCenterWidget self =
+  makeNewObject mkWidget $
+  {# call unsafe box_get_center_widget #}
+    (toBox self)
+
+-- | Sets a center widget; that is a child widget that will be
+-- centered with respect to the full width of the box, even if
+-- the children at either side take up different amounts of space.
+boxSetCenterWidget :: (BoxClass self, WidgetClass widget) => self
+ -> widget
+ -> IO ()
+boxSetCenterWidget self position =
+  {# call unsafe box_set_center_widget #}
+    (toBox self)
+    (toWidget position)
+#endif
+
 -- | Retrieves the standard spacing between widgets.
 --
 boxGetSpacing :: BoxClass self => self
@@ -352,6 +418,24 @@
 boxHomogeneous = newAttr
   boxGetHomogeneous
   boxSetHomogeneous
+
+#if GTK_CHECK_VERSION(3,10,0)
+-- | The position of the baseline aligned widgets if extra space is available.
+boxBaselinePosition :: BoxClass self => Attr self BaselinePosition
+boxBaselinePosition = newAttr
+  boxGetBaselinePosition
+  boxSetBaselinePosition
+#endif
+
+#if GTK_CHECK_VERSION(3,12,0)
+-- | A child widget that will be centered with respect to the
+-- full width of the box, even if the children at either side
+-- take up different amounts of space.
+boxCenterWidget :: (BoxClass self, WidgetClass widget) => ReadWriteAttr self Widget widget
+boxCenterWidget = newAttr
+  boxGetCenterWidget
+  boxSetCenterWidget
+#endif
 
 --------------------
 -- Child Attributes
diff --git a/Graphics/UI/Gtk/Selectors/FileChooserButton.chs b/Graphics/UI/Gtk/Selectors/FileChooserButton.chs
--- a/Graphics/UI/Gtk/Selectors/FileChooserButton.chs
+++ b/Graphics/UI/Gtk/Selectors/FileChooserButton.chs
@@ -75,6 +75,9 @@
   fileChooserButtonDialog,
   fileChooserButtonTitle,
   fileChooserButtonWidthChars,
+
+-- * Signals
+  fileChooserButtonFileSet 
 #endif
   ) where
 
@@ -86,6 +89,7 @@
 import System.Glib.Properties
 import Graphics.UI.Gtk.Abstract.Object  (makeNewObject)
 {#import Graphics.UI.Gtk.Types#}
+{#import Graphics.UI.Gtk.Signals#}
 
 #if GTK_CHECK_VERSION(2,6,0)
 {#import Graphics.UI.Gtk.Selectors.FileChooser#} (FileChooserAction)
@@ -216,4 +220,14 @@
 fileChooserButtonWidthChars = newAttr
   fileChooserButtonGetWidthChars
   fileChooserButtonSetWidthChars
+
+--------------------
+-- Signals
+
+-- %hash c:b660 d:ab72
+-- | Emitted when the user selects a file.
+--
+fileChooserButtonFileSet :: FileChooserButtonClass self => Signal self (IO ())
+fileChooserButtonFileSet = Signal (connect_NONE__NONE "file-set")
+
 #endif
diff --git a/SetupWrapper.hs b/SetupWrapper.hs
--- a/SetupWrapper.hs
+++ b/SetupWrapper.hs
@@ -20,7 +20,7 @@
 import System.Process
 import System.Exit (ExitCode(..), exitWith)
 import System.FilePath
-import System.Directory
+import System.Directory (doesFileExist, getModificationTime)
 import qualified Control.Exception as Exception
 import System.IO.Error (isDoesNotExistError)
 
diff --git a/gtk3.cabal b/gtk3.cabal
--- a/gtk3.cabal
+++ b/gtk3.cabal
@@ -1,5 +1,5 @@
 Name:           gtk3
-Version:        0.14.1
+Version:        0.14.2
 License:        LGPL-2.1
 License-file:   COPYING
 Copyright:      (c) 2001-2010 The Gtk2Hs Team
@@ -391,7 +391,7 @@
     main-is: ActionMenu.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers, text
+    build-depends: gtk3==0.14.2, base, transformers, text
 
 Executable gtk2hs-demo-buttonBox
     default-language: Haskell98
@@ -399,7 +399,7 @@
     main-is: ButtonBox.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers
+    build-depends: gtk3==0.14.2, base, transformers
 
 Executable gtk2hs-demo-carsim
     default-language: Haskell98
@@ -407,7 +407,7 @@
     main-is: CarSim.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers, time, cairo
+    build-depends: gtk3==0.14.2, base, transformers, time, cairo
 
 Executable gtk2hs-demo-progress
     default-language: Haskell98
@@ -415,7 +415,7 @@
     main-is: Progress.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers
+    build-depends: gtk3==0.14.2, base, transformers
 
 Executable gtk2hs-demo-progressThreadedRTS
     default-language: Haskell98
@@ -423,7 +423,7 @@
     main-is: ProgressThreadedRTS.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers
+    build-depends: gtk3==0.14.2, base, transformers
     ghc-options: -threaded
 
 Executable gtk2hs-demo-fastDraw
@@ -432,7 +432,7 @@
     main-is: FastDraw.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers, array, cairo
+    build-depends: gtk3==0.14.2, base, transformers, array, cairo
 
 Executable gtk2hs-demo-fonts
     default-language: Haskell98
@@ -440,7 +440,7 @@
     main-is: Fonts.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base
+    build-depends: gtk3==0.14.2, base
 
 Executable gtk2hs-demo-builder
     default-language: Haskell98
@@ -448,7 +448,7 @@
     main-is: GtkBuilderTest.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers
+    build-depends: gtk3==0.14.2, base, transformers
 
 Executable gtk2hs-demo-helloworld
     default-language: Haskell98
@@ -456,7 +456,7 @@
     main-is: World.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers
+    build-depends: gtk3==0.14.2, base, transformers
 
 Executable gtk2hs-demo-layout
     default-language: Haskell98
@@ -464,7 +464,7 @@
     main-is: Layout.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers, cairo, text
+    build-depends: gtk3==0.14.2, base, transformers, cairo, text
 
 Executable gtk2hs-demo-menudemo
     default-language: Haskell98
@@ -472,7 +472,7 @@
     main-is: MenuDemo.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers, text
+    build-depends: gtk3==0.14.2, base, transformers, text
 
 Executable gtk2hs-demo-combodemo
     default-language: Haskell98
@@ -480,7 +480,7 @@
     main-is: ComboDemo.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, text, base, transformers
+    build-depends: gtk3==0.14.2, text, base, transformers
 
 Executable gtk2hs-demo-notebook
     default-language: Haskell98
@@ -488,7 +488,7 @@
     main-is: Notebook.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers, text
+    build-depends: gtk3==0.14.2, base, transformers, text
 
 Executable gtk2hs-demo-statusIcon
     default-language: Haskell98
@@ -496,7 +496,7 @@
     main-is: StatusIcon.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers
+    build-depends: gtk3==0.14.2, base, transformers
 
 Executable gtk2hs-demo-arabic
     default-language: Haskell98
@@ -504,7 +504,7 @@
     main-is: Arabic.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers, text
+    build-depends: gtk3==0.14.2, base, transformers, text
 
 Executable gtk2hs-demo-overlay
     default-language: Haskell98
@@ -512,4 +512,4 @@
     main-is: Overlay.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.14.1, base, transformers
+    build-depends: gtk3==0.14.2, base, transformers
