diff --git a/hledger-web/.hledger/web/templates/registerreport.hamlet b/hledger-web/.hledger/web/templates/registerreport.hamlet
index b848407d3..ef5123414 100644
--- a/hledger-web/.hledger/web/templates/registerreport.hamlet
+++ b/hledger-web/.hledger/web/templates/registerreport.hamlet
@@ -6,5 +6,5 @@
Amount
#{balancelabel}
- $forall i <- numbered items
+ $forall i <- numberTransactions items
^{itemAsHtml vd i}
diff --git a/hledger-web/Handlers.hs b/hledger-web/Handlers.hs
index c723a8d5d..b319236b2 100644
--- a/hledger-web/Handlers.hs
+++ b/hledger-web/Handlers.hs
@@ -445,3 +445,13 @@ getMessageOr mnewmsg = do
return $ maybe oldmsg (Just . toHtml) mnewmsg
numbered = zip [1..]
+
+-- Add incrementing transaction numbers to a list of register report items starting at 1.
+numberTransactions :: [RegisterReportItem] -> [(Int,RegisterReportItem)]
+numberTransactions [] = []
+numberTransactions is = number 0 is
+ where
+ number _ [] = []
+ number n (i@(Just _, _, _):is) = (n+1,i):(number (n+1) is)
+ number n (i@(Nothing, _, _):is) = (n,i):(number n is)
+