diff --git a/gnucash/report/report-system/html-style-sheet.scm b/gnucash/report/report-system/html-style-sheet.scm
index 7852cb2859..d3aa5e46be 100644
--- a/gnucash/report/report-system/html-style-sheet.scm
+++ b/gnucash/report/report-system/html-style-sheet.scm
@@ -21,6 +21,7 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(use-modules (ice-9 match))
(use-modules (gnucash gettext))
(define *gnc:_style-sheet-templates_* (make-hash-table 23))
@@ -67,23 +68,15 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define (gnc:define-html-style-sheet . args)
- (let ((ss
- ((record-constructor ) #f #f #f #f)))
- (let loop ((left args))
- (if (and (list? left)
- (not (null? left))
- (not (null? (cdr left))))
- (let* ((field (car left))
- (value (cadr left))
- (mod (record-modifier field)))
- (mod ss value)
- (loop (cddr left)))))
-
- ;; store the style sheet template
- (hash-set! *gnc:_style-sheet-templates_*
- (gnc:html-style-sheet-template-name ss)
- ss)))
-
+ (let loop ((args args)
+ (ss ((record-constructor ) #f #f #f #f)))
+ (match args
+ ((field value . rest)
+ ((record-modifier field) ss value)
+ (loop rest ss))
+ (else ;; store the style sheet template
+ (hash-set! *gnc:_style-sheet-templates_*
+ (gnc:html-style-sheet-template-name ss) ss)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; methods