diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,7 @@
+Version 1.8
+-----------
+  * Bugfix for off-by-one error in line numbers with --include=file.
+
 Version 1.7
 -----------
   * Bugfix in interaction of --unlit with \end{code}
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
@@ -16,8 +16,10 @@
 runCpphs :: CpphsOptions -> FilePath -> String -> String
 runCpphs options filename input =
   let bools = boolopts options
-      preInc = concatMap (\f->"#include \""++f++"\"\n") (preInclude options)
---             ++ "#line 1\n"
+      preInc = case preInclude options of
+                 [] -> ""
+                 is -> concatMap (\f->"#include \""++f++"\"\n") is 
+                       ++ "#line 1 \""++filename++"\"\n"
 
       pass1 = cppIfdef filename (defines options) (includes options) bools
                        (preInc++input)
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 LIBRARY = cpphs
-VERSION = 1.7
+VERSION = 1.8
 
 DIRS	= Language/Preprocessor/Cpphs \
 	  Text/ParserCombinators
diff --git a/cpphs.cabal b/cpphs.cabal
--- a/cpphs.cabal
+++ b/cpphs.cabal
@@ -1,6 +1,6 @@
 Name: cpphs
-Version: 1.7
-Copyright: 2004-8, Malcolm Wallace
+Version: 1.8
+Copyright: 2004-2009, Malcolm Wallace
 Build-Depends: base < 6, haskell98
 License: LGPL
 License-File: LICENCE-LGPL
diff --git a/cpphs.hs b/cpphs.hs
--- a/cpphs.hs
+++ b/cpphs.hs
@@ -19,7 +19,7 @@
 import List   ( isPrefixOf )
 
 version :: String
-version = "1.7"
+version = "1.8"
 
 main :: IO ()
 main = do
diff --git a/docs/index.html b/docs/index.html
--- a/docs/index.html
+++ b/docs/index.html
@@ -113,6 +113,7 @@
 <p>
 <center><pre>
 Usage: cpphs  [ filename | -Dsym | -Dsym=val | -Ipath ]+  [-Ofile]
+              [--include=file]*
               [--nomacro] [--noline] [--nowarn] [--pragma]
               [--strip] [--strip-eol]
               [--text] [--hashes] [--layout] [--unlit]
@@ -145,6 +146,8 @@
     <td>add a directory to the search path for #include's</td></tr>
 <tr><td>-Ofile</td>
     <td>specify a file for output (default is stdout)</td></tr>
+<tr><td>--include=file</td>
+    <td>#include the given file at the start of the input</td></tr>
 <tr><td>--nomacro</td>
     <td>only process #ifdef's and #include's, do not expand macros</td></tr>
 <tr><td>--noline</td>
@@ -191,16 +194,16 @@
 <b>Current stable version:</b>
 
 <p>
-cpphs-1.7, release date 2009.06.22<br>
+cpphs-1.8, release date 2009.08.06<br>
 By HTTP:
-<a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.7.tar.gz">.tar.gz</a>,
-<a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.7.zip">.zip</a>.
+<a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.8.tar.gz">.tar.gz</a>,
+<a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.8.zip">.zip</a>.
 <a href="http://www.haskell.org/fedora/">Fedora package</a>,
 <a href="http://packages.gentoo.org/packages/?category=dev-haskell;name=cpphs">Gentoo package</a>,
 <a href="http://www.freshports.org/devel/hs-cpphs/">FreeBSD port</a>,
 <a href="http://www.openbsd.org/cgi-bin/cvsweb/ports/devel/cpphs/">OpenBSD port</a>.
 <ul>
-<li> Bugfix for --unlit interaction with \end{code}.
+<li> Bugfix for off-by-one error in line numbers with --include=file.
 </ul>
 
 <p>
@@ -224,6 +227,15 @@
 <b>Older versions:</b>
 
 <p>
+cpphs-1.7, release date 2009.06.22<br>
+By HTTP:
+<a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.7.tar.gz">.tar.gz</a>,
+<a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.7.zip">.zip</a>.
+<ul>
+<li> Bugfix for --unlit interaction with \end{code}.
+</ul>
+
+<p>
 cpphs-1.6, release date 2008.10.09<br>
 By HTTP:
 <a href="http://www.cs.york.ac.uk/fp/cpphs/cpphs-1.6.tar.gz">.tar.gz</a>,
@@ -534,7 +546,7 @@
         Malcolm.Wallace@cs.york.ac.uk</a> 
 </ul>
 
-<p><b>Copyright:</b> &copy; 2004-2008 Malcolm Wallace,
+<p><b>Copyright:</b> &copy; 2004-2009 Malcolm Wallace,
 except for ParseLib (Copyright &copy; 1995 Graham Hutton and Erik Meijer)
 
 <p><b>License:</b> The library modules in cpphs are distributed under
diff --git a/tests/expect46 b/tests/expect46
--- a/tests/expect46
+++ b/tests/expect46
@@ -3,4 +3,5 @@
 hello world, this is an inclusion
 
 #line 2 "preinclude"
+#line 1 "preinclude"
 something arbitrary
