diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,9 @@
   * (1.18.2): bugfix for erroneous boolean intepretation of some macro
               expansions in #if clauses
   * (1.18.3): further rewrites of the #if expression parser
+  * (1.18.4): fix the accidental flipping of comment-stripping behaviour
+              with --cpp -traditional flags
+
 
 Version 1.17
 ------------
diff --git a/Language/Preprocessor/Cpphs/Options.hs b/Language/Preprocessor/Cpphs/Options.hs
--- a/Language/Preprocessor/Cpphs/Options.hs
+++ b/Language/Preprocessor/Cpphs/Options.hs
@@ -31,7 +31,7 @@
     , includes	:: [String]
     , preInclude:: [FilePath]	-- ^ Files to \#include before anything else
     , boolopts	:: BoolOptions
-    }
+    } deriving (Show)
 
 -- | Default options.
 defaultCpphsOptions :: CpphsOptions
@@ -53,7 +53,7 @@
     , layout	:: Bool  -- ^ Retain newlines in macro expansions?
     , literate	:: Bool  -- ^ Remove literate markup?
     , warnings	:: Bool  -- ^ Issue warnings?
-    }
+    } deriving (Show)
 
 -- | Default settings of boolean options.
 defaultBoolOptions :: BoolOptions
diff --git a/Language/Preprocessor/Cpphs/RunCpphs.hs b/Language/Preprocessor/Cpphs/RunCpphs.hs
--- a/Language/Preprocessor/Cpphs/RunCpphs.hs
+++ b/Language/Preprocessor/Cpphs/RunCpphs.hs
@@ -31,7 +31,7 @@
   let result= if not (macros bools)
               then if   stripC89 bools || stripEol bools
                    then concatMap deWordStyle $
-                        tokenise (stripC89 bools) (stripEol bools)
+                        tokenise (stripEol bools) (stripC89 bools)
                                  (ansi bools) (lang bools) pass1
                    else unlines (map snd pass1)
               else pass2
@@ -61,7 +61,7 @@
                             bools (preInc++input)
           let result = if   stripC89 bools || stripEol bools
                        then concatMap deWordStyle $
-                            tokenise (stripC89 bools) (stripEol bools)
+                            tokenise (stripEol bools) (stripC89 bools)
                                      (ansi bools) (lang bools) pass1
                        else init $ unlines (map snd pass1)
           return (result,syms)
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 LIBRARY = cpphs
-VERSION = 1.18.3
+VERSION = 1.18.4
 
 DIRS	= Language/Preprocessor/Cpphs \
 	  Text/ParserCombinators
diff --git a/cpphs.cabal b/cpphs.cabal
--- a/cpphs.cabal
+++ b/cpphs.cabal
@@ -1,5 +1,5 @@
 Name: cpphs
-Version: 1.18.3
+Version: 1.18.4
 Copyright: 2004-2014, Malcolm Wallace
 License: LGPL
 License-File: LICENCE-LGPL
diff --git a/cpphs.hs b/cpphs.hs
--- a/cpphs.hs
+++ b/cpphs.hs
@@ -20,7 +20,7 @@
 import Data.List   ( isPrefixOf )
 
 version :: String
-version = "1.18.3"
+version = "1.18.4"
 
 main :: IO ()
 main = do
diff --git a/docs/index.html b/docs/index.html
--- a/docs/index.html
+++ b/docs/index.html
@@ -198,12 +198,12 @@
 <b>Current stable version:</b>
 
 <p>
-cpphs-1.18.3, release date 2014.03.03<br>
+cpphs-1.18.4, release date 2014.03.22<br>
 By HTTP:
 <a href="http://hackage.haskell.org/package/cpphs">Hackage</a>.
 <ul>
-<li> further rewrites of the #if expression parser, for better error messages,
-     support for integer operations, and fewer precedence bugs
+<li> fix the accidental flipping of comment-stripping behaviour
+     with --cpp -traditional flags.
 </ul>
 
 <p>
@@ -225,6 +225,15 @@
 
 <p>
 <b>Older versions:</b>
+
+<p>
+cpphs-1.18.3, release date 2014.03.03<br>
+By HTTP:
+<a href="http://hackage.haskell.org/package/cpphs">Hackage</a>.
+<ul>
+<li> further rewrites of the #if expression parser, for better error messages,
+     support for integer operations, and fewer precedence bugs
+</ul>
 
 <p>
 cpphs-1.18.2, release date 2014.02.24<br>
diff --git a/tests/gabor b/tests/gabor
new file mode 100644
--- /dev/null
+++ b/tests/gabor
@@ -0,0 +1,9 @@
+#ifndef MIN_VERSION_base
+#error "no MIN_VERSION_base"
+#endif
+
+#if MIN_VERSION_base(4, 4, 0)
+#error "4.4.0"
+#else
+#error "no 4.4.0"
+#endif
