diff --git a/net/heartbeat/Makefile b/net/heartbeat/Makefile
new file mode 100644
index 00000000000..7c79194128c
--- /dev/null
+++ b/net/heartbeat/Makefile
@@ -0,0 +1,42 @@
+# $OpenBSD: Makefile,v 1.1.1.1 2004/04/22 22:05:30 naddy Exp $
+
+COMMENT=	"SixXS IPv6 tunnel broker heartbeat client"
+
+PKGNAME=	heartbeat-20031026
+DISTNAME=	heartbeat-unix-2003-10-26
+CATEGORIES=	net
+
+HOMEPAGE=	http://www.sixxs.net/tools/heartbeat/
+MASTER_SITES=	http://www.sixxs.net/archive/sixxs/heartbeat/unix/
+
+MAINTAINER=	Waldemar Brodkorb <wbx@openbsd.de>
+
+# GPL
+PERMIT_PACKAGE_CDROM=   Yes
+PERMIT_PACKAGE_FTP=     Yes
+PERMIT_DISTFILES_CDROM= Yes
+PERMIT_DISTFILES_FTP=   Yes
+
+EXTRACT_SUFX=	.tgz
+WRKDIST=	${WRKDIR}/heartbeat
+SEPARATE_BUILD=	simple
+
+NO_REGRESS=	Yes
+
+pre-build:
+	cp ${FILESDIR}/Makefile ${WRKBUILD}
+
+MAKE_FLAGS=	SRCDIR=${WRKSRC}
+DOCDIR=		${PREFIX}/share/doc/heartbeat
+EXAMPLEDIR=	${PREFIX}/share/examples/heartbeat
+
+do-install:
+	${INSTALL_DATA_DIR} ${DOCDIR} ${EXAMPLEDIR}
+	${INSTALL_DATA} ${WRKSRC}/client/heartbeat.conf ${EXAMPLEDIR}
+	${INSTALL_PROGRAM} ${WRKBUILD}/heartbeat-client \
+	    ${PREFIX}/sbin/heartbeatd
+	${INSTALL_DATA} ${WRKSRC}/doc/draft-massar-v6ops-heartbeat-00.txt \
+	    ${DOCDIR}/
+	${INSTALL_DATA} ${WRKSRC}/doc/README ${DOCDIR}
+
+.include <bsd.port.mk>
diff --git a/net/heartbeat/distinfo b/net/heartbeat/distinfo
new file mode 100644
index 00000000000..e8b1c866a46
--- /dev/null
+++ b/net/heartbeat/distinfo
@@ -0,0 +1,3 @@
+MD5 (heartbeat-unix-2003-10-26.tgz) = acd8354e0cfdf20a215d86abc44e2fdb
+RMD160 (heartbeat-unix-2003-10-26.tgz) = 8cded0ba4b5d8486ed33c7d5f578e948fa100bfb
+SHA1 (heartbeat-unix-2003-10-26.tgz) = 43e95c2d868c3c5c8e65d0de1fd47f8c797224f0
diff --git a/net/heartbeat/files/Makefile b/net/heartbeat/files/Makefile
new file mode 100644
index 00000000000..4ef00bb91b7
--- /dev/null
+++ b/net/heartbeat/files/Makefile
@@ -0,0 +1,10 @@
+# $OpenBSD: Makefile,v 1.1.1.1 2004/04/22 22:05:30 naddy Exp $
+
+PROG=	heartbeat-client
+SRCS=	heartbeat-client.c hb.c common.c
+
+NOMAN=1
+
+.PATH: ${SRCDIR}/client ${SRCDIR}/common
+
+.include <bsd.prog.mk>
diff --git a/net/heartbeat/patches/patch-client_heartbeat-client_c b/net/heartbeat/patches/patch-client_heartbeat-client_c
new file mode 100644
index 00000000000..465293e84bb
--- /dev/null
+++ b/net/heartbeat/patches/patch-client_heartbeat-client_c
@@ -0,0 +1,12 @@
+$OpenBSD: patch-client_heartbeat-client_c,v 1.1.1.1 2004/04/22 22:05:30 naddy Exp $
+--- client/heartbeat-client.c.orig	2004-04-21 14:07:53.000000000 +0200
++++ client/heartbeat-client.c	2004-04-21 14:08:08.000000000 +0200
+@@ -277,7 +277,7 @@ int main(int argc, char *argv[])
+ 	if (argc != 2)
+ 	{
+ 		fprintf(stderr,
+-			"heartbeat-client <configfile>\n");
++			"heartbeatd <configfile>\n");
+ 		return -1;
+ 	}
+ 
diff --git a/net/heartbeat/patches/patch-client_heartbeat_conf b/net/heartbeat/patches/patch-client_heartbeat_conf
new file mode 100644
index 00000000000..859c84090b5
--- /dev/null
+++ b/net/heartbeat/patches/patch-client_heartbeat_conf
@@ -0,0 +1,26 @@
+$OpenBSD: patch-client_heartbeat_conf,v 1.1.1.1 2004/04/22 22:05:30 naddy Exp $
+--- client/heartbeat.conf.orig	2003-10-26 14:43:39.000000000 +0100
++++ client/heartbeat.conf	2004-04-15 14:41:51.000000000 +0200
+@@ -12,11 +12,11 @@
+ # os 'linux'
+ 
+ # Operating System (linux/freebsd/openbsd/netbsd/winxp)
+-os "linux"
++os "openbsd"
+ 
+ # Interface the tunnel should go over
+ # used for detecting the local IPv4 endpoint
+-ipv4_interface "eth0"
++ipv4_interface "tun0"
+ 
+ # IPv4 address of the POP (nlams01/nlams02/nlams04/demun01/iedub01/dkcop01)
+ # This is also the address to where heartbeats are sent
+@@ -39,7 +39,7 @@ ipv4_pop "[POP].sixxs.net"
+ 
+ # Interface to be used for the tunnel
+ # will be created on the OS's that need that
+-ipv6_interface "sixxs"
++ipv6_interface "gif0"
+ 
+ # The local and remote sides of the tunnel
+ ipv6_pop "2001:db8::1"
diff --git a/net/heartbeat/pkg/DESCR b/net/heartbeat/pkg/DESCR
new file mode 100644
index 00000000000..475e206df08
--- /dev/null
+++ b/net/heartbeat/pkg/DESCR
@@ -0,0 +1,2 @@
+This is the heartbeart client for the public dynamic-IPv4
+IPv6 tunnel beta test from the SixXS tunnel service provider.
diff --git a/net/heartbeat/pkg/MESSAGE b/net/heartbeat/pkg/MESSAGE
new file mode 100644
index 00000000000..1f71ebbedaf
--- /dev/null
+++ b/net/heartbeat/pkg/MESSAGE
@@ -0,0 +1,18 @@
+
+Installing heartbeat on OpenBSD
+-------------------------------------
+
+Go to www.sixxs.net and get a free account.
+Copy ${PREFIX}/share/examples/heartbeat/heartbeat.conf to
+${SYSCONFDIR} and insert your account data.
+
+You can start the daemon:
+/usr/local/sbin/heartbeatd ${SYSCONFDIR}/heartbeat.conf
+
+Add the following to the /etc/rc.local script to start the daemon on boot:
+
+if [ -x ${PREFIX}/sbin/heartbeatd -a -f ${SYSCONFDIR}/heartbeat.conf ]; then
+	echo -n ' heartbeatd'
+	${PREFIX}/sbin/heartbeatd ${SYSCONFDIR}/heartbeat.conf
+fi
+
diff --git a/net/heartbeat/pkg/PLIST b/net/heartbeat/pkg/PLIST
new file mode 100644
index 00000000000..d97e84b019d
--- /dev/null
+++ b/net/heartbeat/pkg/PLIST
@@ -0,0 +1,7 @@
+@comment $OpenBSD: PLIST,v 1.1.1.1 2004/04/22 22:05:30 naddy Exp $
+sbin/heartbeatd
+share/doc/heartbeat/README
+share/doc/heartbeat/draft-massar-v6ops-heartbeat-00.txt
+share/examples/heartbeat/heartbeat.conf
+@dirrm share/examples/heartbeat
+@dirrm share/doc/heartbeat