diff --git a/Data/Conduit/Attoparsec.hs b/Data/Conduit/Attoparsec.hs
--- a/Data/Conduit/Attoparsec.hs
+++ b/Data/Conduit/Attoparsec.hs
@@ -124,7 +124,7 @@
 -- Since 0.5.0
 conduitParser :: (AttoparsecInput a, MonadThrow m) => A.Parser a b -> Conduit a m (PositionRange, b)
 conduitParser parser =
-    conduit $ Position 1 0
+    conduit $ Position 1 1
        where
          conduit !pos = await >>= maybe (return ()) go
              where
@@ -151,7 +151,7 @@
     => A.Parser a b
     -> Conduit a m (Either ParseError (PositionRange, b))
 conduitParserEither parser =
-    conduit $ Position 1 0
+    conduit $ Position 1 1
   where
     conduit !pos = await >>= maybe (return ()) go
       where
diff --git a/conduit-extra.cabal b/conduit-extra.cabal
--- a/conduit-extra.cabal
+++ b/conduit-extra.cabal
@@ -1,5 +1,5 @@
 Name:                conduit-extra
-Version:             1.1.3.1
+Version:             1.1.3.2
 Synopsis:            Batteries included conduit: adapters for common libraries.
 Description:
     The conduit package itself maintains relative small dependencies. The purpose of this package is to collect commonly used utility functions wrapping other library dependencies, without depending on heavier-weight dependencies. The basic idea is that this package should only depend on haskell-platform packages and conduit.
diff --git a/test/Data/Conduit/AttoparsecSpec.hs b/test/Data/Conduit/AttoparsecSpec.hs
--- a/test/Data/Conduit/AttoparsecSpec.hs
+++ b/test/Data/Conduit/AttoparsecSpec.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE CPP               #-}
 {-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TupleSections     #-}
 {-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
 module Data.Conduit.AttoparsecSpec (spec) where
 import           Control.Exception                (fromException)
@@ -89,6 +90,18 @@
                     case fromException e of
                         Just pe -> do
                             errorPosition pe `shouldBe` Position badLine badCol
+        it "works for first line" $ do
+            let input = ["aab\na", "aaa\n\n", "aaa", "aab\n\naaaa"]
+                badLine = 1
+                badCol = 3
+                parser = Data.Attoparsec.Text.endOfInput <|> (Data.Attoparsec.Text.notChar 'b' >> parser)
+                sink = sinkParser parser
+            ea <- runExceptionT $ CL.sourceList input $$ sink
+            case ea of
+                Left e ->
+                    case fromException e of
+                        Just pe -> do
+                            errorPosition pe `shouldBe` Position badLine badCol
 
     describe "conduitParser" $ do
         it "parses a repeated stream" $ do
@@ -99,10 +112,23 @@
             let chk a = case a of
                           Left{} -> False
                           Right (_, xs) -> xs == "aaa"
-                chkp 1 = (PositionRange (Position 1 0) (Position 2 1))
                 chkp l = (PositionRange (Position l 1) (Position (l+1) 1))
             forM_ ea $ \ a -> a `shouldSatisfy` chk :: Expectation
             forM_ (zip ea [1..]) $ \ (Right (pos, _), l) -> pos `shouldBe` chkp l
             length ea `shouldBe` 4
 
+        it "positions on first line" $ do
+            results <- yield "hihihi\nhihi"
+                $$ conduitParser (Data.Attoparsec.Text.string "\n" <|> Data.Attoparsec.Text.string "hi")
+                =$ CL.consume
+            let f (a, b, c, d, e) = (PositionRange (Position a b) (Position c d), e)
+            results `shouldBe` map f
+                [ (1, 1, 1, 3, "hi")
+                , (1, 3, 1, 5, "hi")
+                , (1, 5, 1, 7, "hi")
 
+                , (1, 7, 2, 1, "\n")
+
+                , (2, 1, 2, 3, "hi")
+                , (2, 3, 2, 5, "hi")
+                ]
