diff --git a/etc/defaults/rc.conf b/etc/defaults/rc.conf
index ad9e40dacc8a..edb0b3de455b 100644
--- a/etc/defaults/rc.conf
+++ b/etc/defaults/rc.conf
@@ -1,4 +1,4 @@
-#	$NetBSD: rc.conf,v 1.151.2.1 2019/09/27 09:18:38 martin Exp $
+#	$NetBSD: rc.conf,v 1.159 2020/09/11 09:59:35 kim Exp $
 #
 # /etc/defaults/rc.conf --
 #	default configuration of /etc/rc.conf
@@ -132,6 +132,7 @@ per_user_tmp=NO					# per-user /tmp directories
 per_user_tmp_dir="/private/tmp"			# real storage for /tmp
 clear_tmp=YES					# clear /tmp after reboot
 update_motd=YES					# updates /etc/motd
+update_motd_release=NO	motd_release_tag=""	# release info in /etc/motd
 dmesg=YES		dmesg_flags="-t"	# write /var/run/dmesg.boot
 accounting=NO					# uses /var/account/acct
 newsyslog=NO		newsyslog_flags=""	# trim log files
diff --git a/etc/rc.d/motd b/etc/rc.d/motd
index 818d811c431c..56e837208b82 100755
--- a/etc/rc.d/motd
+++ b/etc/rc.d/motd
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $NetBSD: motd,v 1.9 2004/08/13 18:08:03 mycroft Exp $
+# $NetBSD: motd,v 1.10 2020/09/11 09:59:35 kim Exp $
 #
 
 # PROVIDE: motd
@@ -16,7 +16,7 @@ stop_cmd=":"
 
 motd_start()
 {
-	#	Update kernel info in /etc/motd
+	#	Update kernel and release info in /etc/motd
 	#	Must be done *before* interactive logins are possible
 	#	to prevent possible race conditions.
 	#
@@ -27,7 +27,16 @@ motd_start()
 	( umask 022
 	T=/etc/_motd
 	sysctl -n kern.version | while read i; do echo $i; break; done > $T
-	sed '1{/^NetBSD.*/{d;};};' < /etc/motd >> $T
+	if checkyesno update_motd_release; then
+		local t="${motd_release_tag}"
+		sed -En '1{/^NetBSD/{s/^/'"$t"'/;h;d;};q;}
+		    /^ *Build ID */{s//(/;s/$/)/;H;g;y/\n/ /;p;q;}
+		    ${g;p;}' < /etc/release >> $T
+		sed -E '1,2{/^'"${t+(${t})?}"'NetBSD/{d;};};' \
+		    < /etc/motd >> $T
+	else
+		sed '1{/^NetBSD.*/{d;};};' < /etc/motd >> $T
+	fi
 	cmp -s $T /etc/motd || cp $T /etc/motd
 	rm -f $T
 	)