diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,10 @@
 # Changelog
 
+- 0.5.6 (2026-06-07)
+  * Improves the wall-clock performance of the constant-time, non-wNAF
+    scalar multiplication function by about 35%. ECDH also speeds up
+    proportionally as a direct result.
+
 - 0.5.5 (2026-05-22)
   * Adds no-hash ECDSA signature verification utilities that skip the
     internal SHA256 step.
diff --git a/lib/Crypto/Curve/Secp256k1.hs b/lib/Crypto/Curve/Secp256k1.hs
--- a/lib/Crypto/Curve/Secp256k1.hs
+++ b/lib/Crypto/Curve/Secp256k1.hs
@@ -567,18 +567,16 @@
 mul# (# px, py, pz #) s
     | CT.decide (CT.not (ge# s)) = (# () | #)
     | otherwise =
-        let !(P gx gy gz) = _CURVE_G
-            !(C.Montgomery o) = C.one
-        in  loop (0 :: Int) (# Z, o, Z #) (# gx, gy, gz #) (# px, py, pz #) s
+        let !(C.Montgomery o) = C.one
+        in  loop (0 :: Int) (# Z, o, Z #) (# px, py, pz #) s
   where
-    loop !j !a !f !d !_SECRET
+    loop !j !a !d !_SECRET
       | j == _CURVE_Q_BITS = (# | a #)
       | otherwise =
           let !nd = double# d
               !(# nm, lsb_set #) = W.shr1_c# _SECRET
               !nacc = select_proj# a (add_proj# a d) lsb_set
-              !nf   = select_proj# (add_proj# f d) f lsb_set
-          in  loop (succ j) nacc nf nd nm
+          in  loop (succ j) nacc nd nm
 {-# INLINE mul# #-}
 
 mul_vartime# :: Proj -> Limb4 -> (# () | Proj #)
diff --git a/ppad-secp256k1.cabal b/ppad-secp256k1.cabal
--- a/ppad-secp256k1.cabal
+++ b/ppad-secp256k1.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.0
 name:               ppad-secp256k1
-version:            0.5.5
+version:            0.5.6
 synopsis:           Schnorr signatures, ECDSA, and ECDH on the elliptic curve
                     secp256k1
 license:            MIT
