diff --git a/UI/NCurses.chs b/UI/NCurses.chs
--- a/UI/NCurses.chs
+++ b/UI/NCurses.chs
@@ -155,6 +155,7 @@
 #define NCURSES_NOMACROS
 #include <string.h>
 #include <ncursesw/curses.h>
+#include <hsncurses-shim.h>
 
 import Foreign hiding (shift)
 import Foreign.C
@@ -996,7 +997,7 @@
 
 -- | Check if the terminal has a mouse
 hasMouse :: Curses Bool
-hasMouse = Curses (fmap cToBool {# call has_mouse #})
+hasMouse = Curses (fmap cToBool {# call hsncurses_has_mouse #})
 
 -- | Check if some position is contained within the given 'Window'.
 enclosed :: Window
diff --git a/hsncurses-shim.c b/hsncurses-shim.c
new file mode 100644
--- /dev/null
+++ b/hsncurses-shim.c
@@ -0,0 +1,18 @@
+#define NCURSES_ENABLE_STDBOOL_H 0
+#define _XOPEN_SOURCE_EXTENDED
+#define NCURSES_NOMACROS
+#include <string.h>
+#include <ncursesw/curses.h>
+
+#if NCURSES_VERSION_PATCH < 20081122
+int _nc_has_mouse();
+#endif
+
+int hsncurses_has_mouse()
+{
+#if NCURSES_VERSION_PATCH >= 20081122
+	return has_mouse();
+#else
+	return _nc_has_mouse();
+#endif
+}
diff --git a/hsncurses-shim.h b/hsncurses-shim.h
new file mode 100644
--- /dev/null
+++ b/hsncurses-shim.h
@@ -0,0 +1,1 @@
+int hsncurses_has_mouse();
diff --git a/ncurses.cabal b/ncurses.cabal
--- a/ncurses.cabal
+++ b/ncurses.cabal
@@ -1,5 +1,5 @@
 name: ncurses
-version: 0.1.0.2
+version: 0.1.0.3
 synopsis: Modernised bindings to GNU ncurses
 license: GPL-3
 license-file: license.txt
@@ -13,6 +13,7 @@
 bug-reports: mailto:jmillikin@gmail.com
 homepage: http://john-millikin.com/software/bindings/ncurses/
 tested-with: GHC==6.12.1
+extra-source-files: hsncurses-shim.h
 
 source-repository head
   type: bazaar
@@ -28,13 +29,16 @@
   build-depends:
       base >= 4 && < 5
     , containers >= 0.2 && < 0.5
-    , text >= 0.7 && < 0.11
+    , text >= 0.7 && < 0.12
     , transformers >= 0.2 && < 0.3
 
   build-tools:
     c2hs >= 0.15
 
   extra-libraries: panel ncursesw
+
+  c-sources: hsncurses-shim.c
+  include-dirs: .
 
   exposed-modules:
     UI.NCurses
