diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
 # citeproc changelog
 
+## 0.8.1.2
+
+  * Allow containers 0.7 (#143)
+
+  * Update tests to use Diff >= 1.0 (#146).
+
+  * Fix `dropTextWhile` and `dropTextWhileEnd` in Citeproc.Pandoc.
+    Ensure that they treat SoftBreak like Space (jgm/pandoc#10451).
+
 ## 0.8.1.1
 
   * Include `10/` prefix in short DOI links (#136).
diff --git a/citeproc.cabal b/citeproc.cabal
--- a/citeproc.cabal
+++ b/citeproc.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                citeproc
-version:             0.8.1.1
+version:             0.8.1.2
 synopsis:            Generates citations and bibliography from CSL styles.
 description:         citeproc parses CSL style files and uses them to
                      generate a list of formatted citations and bibliography
@@ -65,7 +65,7 @@
                      , safe
                      , bytestring
                      , text
-                     , containers >= 0.6.0.1 && < 0.7
+                     , containers >= 0.6.0.1 && < 0.8
                      , transformers >= 0.5.6 && < 0.7
                      , case-insensitive >= 1.2 && < 1.3
                      , vector
@@ -148,7 +148,7 @@
                      , transformers
                      , mtl
                      , timeit
-                     , Diff >= 0.4
+                     , Diff >= 1.0
                      , pretty
                      , filepath
                      , aeson
diff --git a/src/Citeproc/Pandoc.hs b/src/Citeproc/Pandoc.hs
--- a/src/Citeproc/Pandoc.hs
+++ b/src/Citeproc/Pandoc.hs
@@ -161,13 +161,13 @@
              unless (T.null t') $
                put False
              return $ Str t'
-           Space ->
+           _ | x == Space || x == SoftBreak ->
              if f ' '
                 then return $ Str ""
                 else do
                   put False
                   return Space
-           _ -> return x
+             | otherwise  -> return x
        else return x
 
 
@@ -185,8 +185,9 @@
              unless (T.null t') $
                put False
              return $ Str t'
-           Space | f ' ' -> return $ Str ""
-           _ -> return x
+           _ | x == Space || x == SoftBreak
+             , f ' ' -> return $ Str ""
+             | otherwise -> return x
        else return x
 
 -- taken from Text.Pandoc.Shared:
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -3,6 +3,7 @@
     executable: true
     icu: false
 resolver: lts-19.0
-extra-deps: []
+extra-deps:
+- Diff-1.0.2
 ghc-options:
   "$locals": -fhide-source-paths
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -363,6 +363,6 @@
   putStrLn $ Pretty.render $ prettyContextDiff
     (Pretty.text "expected")
     (Pretty.text "actual")
-    (Pretty.text . T.unpack)
-    $ getContextDiff 1 (T.lines expected) (T.lines actual)
+    (Pretty.text . T.unpack . unnumber)
+    $ getContextDiff Nothing (T.lines expected) (T.lines actual)
 
