diff --git a/Rasterific.cabal b/Rasterific.cabal
--- a/Rasterific.cabal
+++ b/Rasterific.cabal
@@ -1,7 +1,7 @@
 -- Initial Rasterific.cabal generated by cabal init.  For further 
 -- documentation, see http://haskell.org/cabal/users-guide/
 name:                Rasterific
-version:             0.7.4.2
+version:             0.7.4.3
 synopsis:            A pure haskell drawing engine.
 -- A longer description of the package.
 description:
@@ -38,7 +38,7 @@
 Source-Repository this
     Type:      git
     Location:  git://github.com/Twinside/Rasterific.git
-    Tag:       v0.7.4.2
+    Tag:       v0.7.4.3
 
 flag embed_linear
   description: Embed a reduced version of Linear avoiding a (huge) dep
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,6 +1,11 @@
 Change log
 ==========
 
+v0.7.4.3 May 2019
+-----------------
+
+ * Fix round cap on degenerate cubic bezier (with null normal)
+ 
 v0.7.4.2 December 2018
 ----------------------
 
diff --git a/src/Graphics/Rasterific/StrokeInternal.hs b/src/Graphics/Rasterific/StrokeInternal.hs
--- a/src/Graphics/Rasterific/StrokeInternal.hs
+++ b/src/Graphics/Rasterific/StrokeInternal.hs
@@ -16,6 +16,7 @@
              , (^+^)
              , (^*)
              , dot
+             , nearZero
              )
 
 import Graphics.Rasterific.Operators
@@ -80,7 +81,9 @@
 -- | Put a cap at the end of a bezier curve, depending
 -- on the kind of cap wanted.
 cap :: Float -> Cap -> Primitive -> Container Primitive
-cap offset CapRound prim = roundJoin offset p u (- u)
+cap offset CapRound prim 
+  | nearZero u = cap offset (CapStraight 0) prim
+  | otherwise = roundJoin offset p u (- u)
   where (p, u) = lastPointAndNormal prim
 
 cap offset (CapStraight cVal) prim =
