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/gtk.cabal b/gtk.cabal
--- a/gtk.cabal
+++ b/gtk.cabal
@@ -1,5 +1,5 @@
 Name:           gtk
-Version:        0.12.5.1
+Version:        0.12.5.2
 License:        LGPL-2.1
 License-file:   COPYING
 Copyright:      (c) 2001-2010 The Gtk2Hs Team
@@ -127,6 +127,13 @@
   Description: Assume that the installed GTK is the version for OS X backend by Quartz, and hence does not provide gdk_x11_drawable_get_xid
   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,
@@ -375,7 +382,8 @@
         else
           x-Types-Tag:  deprecated
         if os(windows)
-          cpp-options:    -DWIN32
+          cpp-options:    -DWIN32 -fno-exceptions
+          cc-options:     -fno-exceptions
           extra-libraries: kernel32
 
         x-c2hs-Header:  hsgtk.h
@@ -386,5 +394,8 @@
         else
           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+-2.0
