diff --git a/Data/Text.hs b/Data/Text.hs
index 0f9d2deaae8137e9378b55afbebd5c76b742bfea..27b93edbc7056d9b5a9b5686a4d1558af1aacd16 100644
--- a/Data/Text.hs
+++ b/Data/Text.hs
@@ -627,8 +627,7 @@ replace needle@(Text _      _      neeLen)
   | otherwise   = Text (A.run x) 0 len
   where
     ixs = indices needle haystack
-    cnt = L.length ixs
-    len = hayLen - (neeLen - repLen) * cnt
+    len = hayLen - (neeLen - repLen) * L.length ixs
     x = do
       marr <- A.new len
       let loop (i:is) o d = do