diff --git a/Language/Preprocessor/Cpphs/ReadFirst.hs b/Language/Preprocessor/Cpphs/ReadFirst.hs
--- a/Language/Preprocessor/Cpphs/ReadFirst.hs
+++ b/Language/Preprocessor/Cpphs/ReadFirst.hs
@@ -38,6 +38,7 @@
 
 readFirst name demand path warn =
     case name of
+       nm@(c:':':_) -> try nm [""]  -- Windows absolute path
        '/':nm -> try nm   [""]
        _      -> try name (cons dd (".":path))
   where
diff --git a/cpphs.cabal b/cpphs.cabal
--- a/cpphs.cabal
+++ b/cpphs.cabal
@@ -1,6 +1,6 @@
 Name: cpphs
-Version: 1.20.2
-Copyright: 2004-2016, Malcolm Wallace
+Version: 1.20.3
+Copyright: 2004-2017, Malcolm Wallace
 License: LGPL
 License-File: LICENCE-LGPL
 Cabal-Version: >= 1.6
diff --git a/cpphs.hs b/cpphs.hs
--- a/cpphs.hs
+++ b/cpphs.hs
@@ -21,7 +21,7 @@
 import Data.List   ( isPrefixOf )
 
 version :: String
-version = "1.20.2"
+version = "1.20.3"
 
 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.20.2, release date 2016-09-05<br>
+cpphs-1.20.3, release date 2017-02-06<br>
 By HTTP:
 <a href="http://hackage.haskell.org/package/cpphs">Hackage</a>.
 <ul>
-<li> (1.20.2) ensure all input/output is UTF8, regardless of locale
+<li> (1.20.3) detect an absolute windows path with a drive letter in a #include
 </ul>
 
 <p>
@@ -226,13 +226,20 @@
 <b>Older versions:</b>
 
 <p>
+cpphs-1.20.2, release date 2016-09-05<br>
+By HTTP:
+<a href="http://hackage.haskell.org/package/cpphs">Hackage</a>.
+<ul>
+<li> (1.20.2) ensure all input/output is UTF8, regardless of locale
+</ul>
+
+<p>
 cpphs-1.20, release date 2016-03-04<br>
 By HTTP:
 <a href="http://hackage.haskell.org/package/cpphs">Hackage</a>.
 <ul>
 <li> bugfix for #if defined(FOO) &amp;&amp; FOO(a,b)
 <li> (1.20.1) fix version number
-<li> (1.20.2) ensure all input/output is UTF8, regardless of locale
 </ul>
 
 <p>
