diff --git a/lisp/bbdb-print.el b/lisp/bbdb-print.el
index f2efef1..5decf37 100644
--- a/lisp/bbdb-print.el
+++ b/lisp/bbdb-print.el
@@ -401,6 +401,9 @@ of the printout, notably the variables `bbdb-print-alist' and
     (goto-char (point-min)))
   (message "Process this file with TeX (not LaTeX)"))
 
+(defmacro bbdb-do-cl-progv (vars &rest body)
+   `(cl-progv (quote ,vars) (list ,@vars) ,@body))
+
 (defun bbdb-print-record (record current-letter
                                  brief pofl n-phones n-addresses)
   "Insert the bbdb RECORD in TeX format in the current buffer.
@@ -437,7 +440,7 @@ The return value is the new CURRENT-LETTER."
         (xfields (bbdb-record-xfields record))
         (bbdb-address-format-list bbdb-print-address-format-list))
 
-    (when (eval bbdb-print-require)
+    (when (bbdb-do-cl-progv (first-letter name organization mail phone address xfields) (eval bbdb-print-require))
       ;; Insert section header, if neccessary.
       (if (or (eq current-letter t)
               (not (string-equal first-letter current-letter)))
