diff --git a/main/kbd/APKBUILD b/main/kbd/APKBUILD
index cd45a36c4feff8078b2a9710cc67390025ef5b0c..4ca11648efcc5f7df85dfa1294474262b656552f 100644
--- a/main/kbd/APKBUILD
+++ b/main/kbd/APKBUILD
@@ -2,7 +2,7 @@
 # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
 pkgname=kbd
 pkgver=2.0.3
-pkgrel=0
+pkgrel=1
 pkgdesc="Tools for configuring the console (keyboard, virtual terminals, etc.)"
 url="http://ftp.altlinux.org/pub/people/legion/kbd"
 arch="all"
@@ -10,20 +10,15 @@ license="GPL2+"
 depends="kbd-misc"
 makedepends="linux-headers bison flex autoconf automake linux-pam-dev check-dev"
 install=""
-subpackages="$pkgname-misc $pkgname-doc"
+subpackages="$pkgname-misc $pkgname-doc $pkgname-vlock"
 source="ftp://ftp.altlinux.org/pub/people/legion/kbd/kbd-$pkgver.tar.gz
 	error.h
 	"
 
 _builddir="$srcdir"/kbd-$pkgver
 prepare() {
-	local i
-	cd "$_builddir"
-	for i in $source; do
-		case $i in
-		*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
-		esac
-	done
+	# apply patches (if any)
+	default_prepare || return 1
 
 	# install our error.h
 	cp "$srcdir"/error.h . || return 1
@@ -86,6 +81,18 @@ package() {
 	ln -s openvt "$pkgdir"/usr/bin/open
 }
 
+vlock() {
+	pkgdesc="$pkgname vlock implemantation"
+	depends=
+
+	# This is the only binary needing linux-pam moving this to a
+	# subpackage reduce the amount of depencies of the kbd package.
+
+	mkdir -p "$subpkgdir"/usr/bin
+	mv "$pkgdir"/usr/bin/vlock \
+		"$subpkgdir"/usr/bin/ || return 1
+}
+
 misc() {
 	pkgdesc="Data for kbd package"
 	arch="noarch"