diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,13 @@
 
+6.5
+---
+
+* Raised upper bound on `microlens` dependency to permit builds against
+  0.5.
+* Fixed the `utf8-string` dependency lower bound to account for an added
+  module in 0.3.1. (#279)
+* Improved the allocation behavior of `swapSkipsForSingleColumnCharSpan`.
+
 6.4
 ---
 
diff --git a/src/Graphics/Vty/PictureToSpans.hs b/src/Graphics/Vty/PictureToSpans.hs
--- a/src/Graphics/Vty/PictureToSpans.hs
+++ b/src/Graphics/Vty/PictureToSpans.hs
@@ -172,7 +172,7 @@
 
 swapSkipsForSingleColumnCharSpan :: Char -> Attr -> SpanOps -> SpanOps
 swapSkipsForSingleColumnCharSpan c a = Vector.map f
-    where f (Skip ow) = let txt = TL.pack $ replicate ow c
+    where f (Skip ow) = let txt = TL.take (toEnum ow) $ TL.repeat c
                         in TextSpan a ow ow txt
           f v = v
 
diff --git a/vty.cabal b/vty.cabal
--- a/vty.cabal
+++ b/vty.cabal
@@ -1,5 +1,5 @@
 name:                vty
-version:             6.4
+version:             6.5
 license:             BSD3
 license-file:        LICENSE
 author:              AUTHORS
@@ -43,12 +43,12 @@
                        blaze-builder >= 0.3.3.2 && < 0.5,
                        bytestring,
                        deepseq >= 1.1 && < 1.6,
-                       microlens < 0.4.15,
+                       microlens < 0.6,
                        microlens-mtl,
                        mtl >= 1.1.1.0 && < 2.4,
                        stm,
                        text >= 0.11.3,
-                       utf8-string >= 0.3 && < 1.1,
+                       utf8-string >= 0.3.1 && < 1.1,
                        vector >= 0.7,
                        binary,
                        parsec,
