            (message "Text you type now will have face `%s'." face)
            (facemenu-add-new-face face)
            ;; It is `facemenu-add-face' that either uses region or next insert.
-           (facemenu-add-face face (and mark-active start) (and mark-active end))
-           (when (and mark-active start end (/= start end))
+           (facemenu-add-face face
+                              (and (hlt-nonempty-region-p)  start)
+                              (and (hlt-nonempty-region-p)  end))
+           (when (hlt-nonempty-region-p)
              (put-text-property start end 'hlt-highlight    face)
              (put-text-property start end 'font-lock-ignore t)))
           (t (put-text-property start end 'face             face)

;;  written and copyrighted by Dave Brennan, brennan@hal.com, in 1992.
;;  I haven't been able to locate that file, so my change log is the
;;  only record I have of what our relative contributions are.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; Change Log:
;;
;;(@* "Change log")
;;
;; 2012/07/11 dadams
;;     hlt-(highlighter|eraser)-mouse: Skip over event of choosing menu item, for Emacs 20-21.
;; 2011/12/01 dadams

Optional arg FACE is a face symbol.  If non-nil, then delete only
overlays with that FACE."
  (let ((highlight-face  (overlay-get overlay 'hlt-highlight)))
    (when (and highlight-face  (or (not face)  (eq face highlight-face)))
      (delete-overlay overlay))))

;;; (defun hlt-unhighlight-for-overlay (overlay start end &optional face)
