diff --git a/share/sgml/freebsd.dsl b/share/sgml/freebsd.dsl
index f4a0dbacd7..4046315d38 100644
--- a/share/sgml/freebsd.dsl
+++ b/share/sgml/freebsd.dsl
@@ -249,16 +249,20 @@
 	(element email
 	  (let* ((class		(attribute-string (normalize "role"))))
 	    (cond
-	      ((or (equal? class "nolink") (string=?
-		(substring (data (current-node))
-		  (- (string-length (data (current-node))) 11)
-		  (- (string-length (data (current-node))) 4)) "example"))
+	     ((or (equal? class "nolink")
+		  (and (> (string-length (data (current-node)))
+			  11)
+		       (string=?
+			(substring (data (current-node))
+				   (- (string-length (data (current-node))) 11)
+				   (- (string-length (data (current-node))) 4))
+			"example")))
 	      ($code-seq$
-		(make sequence
-		  (literal "<")
-		  (process-children)
-		  (literal ">"))))
-	    (else
+	       (make sequence
+		 (literal "<")
+		 (process-children)
+		 (literal ">"))))
+	     (else
 	      (next-match)))))
 
 	;; Ensure that we start with no preferred mediaobject notations,