diff --git a/Graphics/UI/Gtk/General/hsgthread.cpp b/Graphics/UI/Gtk/General/hsgthread.cpp
--- a/Graphics/UI/Gtk/General/hsgthread.cpp
+++ b/Graphics/UI/Gtk/General/hsgthread.cpp
@@ -59,7 +59,9 @@
 
 /* Initialize the default _fmode on WIN32. */
 void gtk2hs_initialise (void) {
-#if defined( WIN32 )
+#if defined( WIN32 ) && defined( GTK2HS_SET_FMODE_BINARY )
+	/* Some Windows GTK binraries (current Fedora MinGW ones) do */
+	/* not open files in binary mode.  This is a work around.    */
     _fmode = _O_BINARY;
 #endif
 }
diff --git a/gtk3.cabal b/gtk3.cabal
--- a/gtk3.cabal
+++ b/gtk3.cabal
@@ -1,5 +1,5 @@
 Name:           gtk3
-Version:        0.12.5.1
+Version:        0.12.5.2
 License:        LGPL-2.1
 License-file:   COPYING
 Copyright:      (c) 2001-2010 The Gtk2Hs Team
@@ -126,6 +126,13 @@
   Description: Build the demo executables
   Default: False
 
+Flag fmode-binary
+  Description: Set the default file translation mode for file I/O operations to _O_BINARY.
+               Some GTK libraries open image files without specifing binary mode.
+               If you have trouble loading gtk in ghci, then it may help to turn this
+               option off.
+  Default: True
+
 Library
         build-depends:  base >= 4 && < 5,
                         array, containers, mtl, bytestring,
@@ -361,7 +368,8 @@
         include-dirs:   .
         cpp-options: -DDISABLE_DEPRECATED
         if os(windows)
-          cpp-options:    -DWIN32
+          cpp-options:    -DWIN32 -fno-exceptions
+          cc-options:     -fno-exceptions
           extra-libraries: kernel32
 
         x-c2hs-Header:  hsgtk.h
@@ -373,6 +381,9 @@
           x-Types-Tag: default plugNsocket
           cpp-options: -DHAVE_PLUG_AND_SOCKET
 
+        if os(windows) && flag(fmode-binary)
+          cc-options: -DGTK2HS_SET_FMODE_BINARY
+
         pkgconfig-depends: gthread-2.0, gtk+-3.0
 
 Executable gtk2hs-demo-actionMenu
@@ -380,35 +391,35 @@
     main-is: ActionMenu.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers
+    build-depends: gtk3==0.12.5.2, base, transformers
 
 Executable gtk2hs-demo-buttonBox
     hs-source-dirs: demo/buttonbox
     main-is: ButtonBox.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers
+    build-depends: gtk3==0.12.5.2, base, transformers
 
 Executable gtk2hs-demo-carsim
     hs-source-dirs: demo/carsim
     main-is: CarSim.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers, time, cairo
+    build-depends: gtk3==0.12.5.2, base, transformers, time, cairo
 
 Executable gtk2hs-demo-progress
     hs-source-dirs: demo/concurrent
     main-is: Progress.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers
+    build-depends: gtk3==0.12.5.2, base, transformers
 
 Executable gtk2hs-demo-progressThreadedRTS
     hs-source-dirs: demo/concurrent
     main-is: ProgressThreadedRTS.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers
+    build-depends: gtk3==0.12.5.2, base, transformers
     ghc-options: -threaded
 
 Executable gtk2hs-demo-fastDraw
@@ -416,68 +427,68 @@
     main-is: FastDraw.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers, array, cairo
+    build-depends: gtk3==0.12.5.2, base, transformers, array, cairo
 
 Executable gtk2hs-demo-fonts
     hs-source-dirs: demo/fonts
     main-is: Fonts.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base
+    build-depends: gtk3==0.12.5.2, base
 
 Executable gtk2hs-demo-builder
     hs-source-dirs: demo/gtkbuilder
     main-is: GtkBuilderTest.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers
+    build-depends: gtk3==0.12.5.2, base, transformers
 
 Executable gtk2hs-demo-helloworld
     hs-source-dirs: demo/hello
     main-is: World.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers
+    build-depends: gtk3==0.12.5.2, base, transformers
 
 Executable gtk2hs-demo-layout
     hs-source-dirs: demo/inputmethod
     main-is: Layout.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers, cairo
+    build-depends: gtk3==0.12.5.2, base, transformers, cairo
 
 Executable gtk2hs-demo-menudemo
     hs-source-dirs: demo/menu
     main-is: MenuDemo.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers
+    build-depends: gtk3==0.12.5.2, base, transformers
 
 Executable gtk2hs-demo-combodemo
     hs-source-dirs: demo/menu
     main-is: ComboDemo.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers
+    build-depends: gtk3==0.12.5.2, base, transformers
 
 Executable gtk2hs-demo-notebook
     hs-source-dirs: demo/notebook
     main-is: Notebook.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers
+    build-depends: gtk3==0.12.5.2, base, transformers
 
 Executable gtk2hs-demo-statusIcon
     hs-source-dirs: demo/statusicon
     main-is: StatusIcon.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers
+    build-depends: gtk3==0.12.5.2, base, transformers
 
 Executable gtk2hs-demo-arabic
     hs-source-dirs: demo/unicode
     main-is: Arabic.hs
     if flag(build-demos)
       buildable: True
-    build-depends: gtk3==0.12.5.0, base, transformers
+    build-depends: gtk3==0.12.5.2, base, transformers
 
