diff --git a/lisp/net/puny.el b/lisp/net/puny.el index c718d958be1..bdd59be070a 100644 --- a/lisp/net/puny.el +++ b/lisp/net/puny.el @@ -150,10 +150,12 @@ For instance \"xn--bcher-kva\" => \"bücher\"." (defun puny-decode-string-internal (string) (with-temp-buffer (insert string) - (goto-char (point-max)) - (search-backward "-" nil (point-min)) - ;; The encoded chars are after the final dash. - (let ((encoded (buffer-substring (1+ (point)) (point-max))) + ;; The encoded chars are after any final dash, else the whole string. + (let ((encoded (buffer-substring + (if (search-backward "-" nil 'move) + (1+ (point)) + (point)) + (point-max))) (ic 0) (i 0) (bias puny-initial-bias)