diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,11 @@
 Changes
 =======
 
+Version 1.4.0.3
+---------------
+
+Fix CPP warning/error `macro expansion producing 'defined' has undefined behavior`
+
 Version 1.4.0.2
 ---------------
 
diff --git a/Test/Tasty/Runners/Utils.hs b/Test/Tasty/Runners/Utils.hs
--- a/Test/Tasty/Runners/Utils.hs
+++ b/Test/Tasty/Runners/Utils.hs
@@ -19,7 +19,11 @@
 #endif
 
 -- Install handlers only on UNIX
-#define INSTALL_HANDLERS defined VERSION_unix
+#ifdef VERSION_unix
+#define INSTALL_HANDLERS 1
+#else
+#define INSTALL_HANDLERS 0
+#endif
 
 #if INSTALL_HANDLERS
 import System.Posix.Signals
diff --git a/tasty.cabal b/tasty.cabal
--- a/tasty.cabal
+++ b/tasty.cabal
@@ -2,7 +2,7 @@
 --  see http://haskell.org/cabal/users-guide/
 
 name:                tasty
-version:             1.4.0.2
+version:             1.4.0.3
 synopsis:            Modern and extensible testing framework
 description:         Tasty is a modern testing framework for Haskell.
                      It lets you combine your unit tests, golden
