diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -13,6 +13,7 @@
               its definition
   * (1.18.7): bugfix to accept a #include with absolute filepath
   * (1.18.8): fix version number
+  * (1.18.9): accept #if defined foo as well as #if defined(foo)
 
 Version 1.17
 ------------
diff --git a/Language/Preprocessor/Cpphs/CppIfdef.hs b/Language/Preprocessor/Cpphs/CppIfdef.hs
--- a/Language/Preprocessor/Cpphs/CppIfdef.hs
+++ b/Language/Preprocessor/Cpphs/CppIfdef.hs
@@ -220,7 +220,8 @@
                              (Right s, _)  -> return s
             convert sym args'
         <|>
-        do  convert sym [] )
+        if (sym=="defined") then do arg <- skip parseSym; convert sym [arg]
+                            else convert sym [] )
   where
     fragment = many1 (satisfy (`notElem`",)"))
     convert "defined" [arg] =
diff --git a/cpphs.cabal b/cpphs.cabal
--- a/cpphs.cabal
+++ b/cpphs.cabal
@@ -1,5 +1,5 @@
 Name: cpphs
-Version: 1.18.8
+Version: 1.18.9
 Copyright: 2004-2015, 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.8"
+version = "1.18.9"
 
 main :: IO ()
 main = do
diff --git a/docs/index.html b/docs/index.html
--- a/docs/index.html
+++ b/docs/index.html
@@ -198,11 +198,11 @@
 <b>Current stable version:</b>
 
 <p>
-cpphs-1.18.8, release date 2015-01-20<br>
+cpphs-1.18.9, release date 2015-02-19<br>
 By HTTP:
 <a href="http://hackage.haskell.org/package/cpphs">Hackage</a>.
 <ul>
-<li> fix version number
+<li> accept "#if defined foo" as well as "#if defined(foo)"
 </ul>
 
 <p>
@@ -224,6 +224,14 @@
 
 <p>
 <b>Older versions:</b>
+
+<p>
+cpphs-1.18.8, release date 2015-01-20<br>
+By HTTP:
+<a href="http://hackage.haskell.org/package/cpphs">Hackage</a>.
+<ul>
+<li> fix version number
+</ul>
 
 <p>
 cpphs-1.18.7, release date 2015.01.17<br>
