diff --git a/Graphics/Rendering/Cairo.hs b/Graphics/Rendering/Cairo.hs
--- a/Graphics/Rendering/Cairo.hs
+++ b/Graphics/Rendering/Cairo.hs
@@ -5,8 +5,13 @@
 -- version test of the array package). At the same time we need to version of
 -- Cairo and the macros for testing it. We sneakily get the version from the
 -- internal cairo-version.h file but we have to define the testing macros ourselves.
-#include<cairo-version.h>
 #include<cairo-features.h>
+
+-- GTK-2.12 doesn't have cairo-version.h, but defines the appropriate VERSION
+-- variables in cairo-features.h instead. So only include this when necessary.
+#ifndef CAIRO_VERSION_MAJOR
+#include<cairo-version.h>
+#endif
 #define CAIRO_VERSION_ENCODE(major, minor, micro) (     \
           ((major) * 10000)                             \
         + ((minor) *   100)                             \
diff --git a/Graphics/Rendering/Cairo/Types.chs b/Graphics/Rendering/Cairo/Types.chs
--- a/Graphics/Rendering/Cairo/Types.chs
+++ b/Graphics/Rendering/Cairo/Types.chs
@@ -361,7 +361,7 @@
 cFromBool  = fromBool
 
 {-# INLINE cToBool #-}
-cToBool :: Num a => a -> Bool
+cToBool :: (Eq a, Num a) => a -> Bool
 cToBool  = toBool
 
 {-# INLINE cToEnum #-}
diff --git a/cairo.cabal b/cairo.cabal
--- a/cairo.cabal
+++ b/cairo.cabal
@@ -1,5 +1,5 @@
 Name:           cairo
-Version:        0.12.2
+Version:        0.12.3
 License:        BSD3
 License-file:   COPYRIGHT
 Copyright:      (c) 2001-2010 The Gtk2Hs Team, (c) Paolo Martini 2005, (c) Abraham Egnor 2003, 2004, (c) Aetion Technologies LLC 2004
@@ -15,7 +15,7 @@
                 exist various backends that allows rendering to Gtk windows, PDF,
                 PS, PNG and SVG documents, amongst others.
 Category:       Graphics
-Tested-With:    GHC == 6.10.4, GHC == 6.12.3, GHC == 7.0.4, GHC == 7.2.1
+Tested-With:    GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.1
 extra-source-files: cairo-gtk2hs.h
                     SetupWrapper.hs SetupMain.hs Gtk2HsSetup.hs
 
