diff --git a/data/cgi/Makefile b/data/cgi/Makefile
index c993259f9b..69e2d2af23 100644
--- a/data/cgi/Makefile
+++ b/data/cgi/Makefile
@@ -1,7 +1,7 @@
DATA= ftp.mirrors
CGI= ftp.cgi gallery.cgi mirror.cgi cgi-lib.pl cgi-style.pl
CGI+= search.cgi cvsweb.cgi query-pr.cgi query-pr-summary.cgi
-CGI+= dosendpr.cgi freebsd.def html.pl
+CGI+= dosendpr.cgi freebsd.def html.pl reg.cgi
.SUFFIXES: .C .cgi
diff --git a/data/cgi/reg.cgi b/data/cgi/reg.cgi
new file mode 100755
index 0000000000..8bd4e18aaa
--- /dev/null
+++ b/data/cgi/reg.cgi
@@ -0,0 +1,91 @@
+#!/usr/bin/perl
+
+# Perl program to send mail.
+
+
+$mailprog = '/usr/sbin/sendmail';
+
+print "Content-type: text/html\n\n";
+
+if ($ENV{'REQUEST_METHOD'} eq "get") { $buffer = $ENV{'QUERY_STRING'}; }
+else { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
+
+@nvpairs = split(/&/, $buffer);
+foreach $pair (@nvpairs)
+{
+ ($name, $value) = split(/=/, $pair);
+
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+
+ $FORM{$name} = $value;
+}
+
+if ($FORM{"emaila"} eq "") {
+ print "\n";
+ print "
\n";
+ print "Entry Error: Email Field Blank\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "Your email address was left blank. Please enter it.\n";
+ print "\n";
+ print "\n";
+ exit(0);
+}
+
+$recipient = $FORM{'recipient'};
+
+#
+# format the mail file
+format MAIL =
+~~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+$value
+.
+
+# Open the mail file and write to it
+open (MAIL, "|$mailprog $recipient") || die "$mailprog not available.\n";
+print MAIL "From: $FORM{'emaila'}\n";
+print MAIL "Subject: FreeBSD Registration from $FORM{'emaila'}\n\n";
+
+print MAIL "\n";
+print MAIL "$FORM{'First'}\n";
+print MAIL "$FORM{'Last'}\n";
+print MAIL "$FORM{'emaila'}\n";
+print MAIL "$FORM{'Address'}\n";
+print MAIL "$FORM{'City'}\n";
+print MAIL "$FORM{'State'}\n";
+print MAIL "$FORM{'Zip'}\n";
+print MAIL "";
+print MAIL " \n";
+print MAIL "$FORM{'version'}\n";
+print MAIL "\n";
+print MAIL "\n";
+close (MAIL);
+
+print "\n";
+print "
\n";
+print "Mail Sent\n";
+print "\n";
+print "\n";
+print " \n";
+print "\n";
+print "
\n";
+print "\n";
+print "Thank you, $FORM{'First'} $FORM{'Last'}, for your registration.\n";
+print "
It has been submitted.\n";
+print "
\n";
+print "\n";
+
+end;
diff --git a/en/cgi/Makefile b/en/cgi/Makefile
index c993259f9b..69e2d2af23 100644
--- a/en/cgi/Makefile
+++ b/en/cgi/Makefile
@@ -1,7 +1,7 @@
DATA= ftp.mirrors
CGI= ftp.cgi gallery.cgi mirror.cgi cgi-lib.pl cgi-style.pl
CGI+= search.cgi cvsweb.cgi query-pr.cgi query-pr-summary.cgi
-CGI+= dosendpr.cgi freebsd.def html.pl
+CGI+= dosendpr.cgi freebsd.def html.pl reg.cgi
.SUFFIXES: .C .cgi
diff --git a/en/cgi/reg.cgi b/en/cgi/reg.cgi
new file mode 100755
index 0000000000..8bd4e18aaa
--- /dev/null
+++ b/en/cgi/reg.cgi
@@ -0,0 +1,91 @@
+#!/usr/bin/perl
+
+# Perl program to send mail.
+
+
+$mailprog = '/usr/sbin/sendmail';
+
+print "Content-type: text/html\n\n";
+
+if ($ENV{'REQUEST_METHOD'} eq "get") { $buffer = $ENV{'QUERY_STRING'}; }
+else { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
+
+@nvpairs = split(/&/, $buffer);
+foreach $pair (@nvpairs)
+{
+ ($name, $value) = split(/=/, $pair);
+
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+
+ $FORM{$name} = $value;
+}
+
+if ($FORM{"emaila"} eq "") {
+ print "\n";
+ print "\n";
+ print "Entry Error: Email Field Blank\n";
+ print "\n";
+ print "\n";
+ print "\n";
+ print "Your email address was left blank. Please enter it.\n";
+ print "\n";
+ print "\n";
+ exit(0);
+}
+
+$recipient = $FORM{'recipient'};
+
+#
+# format the mail file
+format MAIL =
+~~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+$value
+.
+
+# Open the mail file and write to it
+open (MAIL, "|$mailprog $recipient") || die "$mailprog not available.\n";
+print MAIL "From: $FORM{'emaila'}\n";
+print MAIL "Subject: FreeBSD Registration from $FORM{'emaila'}\n\n";
+
+print MAIL "\n";
+print MAIL "$FORM{'First'}\n";
+print MAIL "$FORM{'Last'}\n";
+print MAIL "$FORM{'emaila'}\n";
+print MAIL "$FORM{'Address'}\n";
+print MAIL "$FORM{'City'}\n";
+print MAIL "$FORM{'State'}\n";
+print MAIL "$FORM{'Zip'}\n";
+print MAIL "";
+print MAIL " \n";
+print MAIL "$FORM{'version'}\n";
+print MAIL "\n";
+print MAIL "\n";
+close (MAIL);
+
+print "\n";
+print "
\n";
+print "Mail Sent\n";
+print "\n";
+print "\n";
+print " \n";
+print "\n";
+print "
\n";
+print "\n";
+print "Thank you, $FORM{'First'} $FORM{'Last'}, for your registration.\n";
+print "
It has been submitted.\n";
+print "
\n";
+print "\n";
+
+end;