diff --git a/testing/shadow/APKBUILD b/testing/shadow/APKBUILD
index 70ee80a1883d437cfa2f2281c7a7b23b7a9599b7..c5ac99edb47bc5e9127b99678eb6688e830f4ec1 100644
--- a/testing/shadow/APKBUILD
+++ b/testing/shadow/APKBUILD
@@ -1,15 +1,16 @@
 # Contributor: William Pitcock <nenolod@dereferenced.org>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
 # Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
 pkgname=shadow
 pkgver=4.2.1
-pkgrel=5
-pkgdesc="PAM-using login and passwd utilities (usermod / useradd / newuidmap etc)"
+pkgrel=6
+pkgdesc="PAM-using login and passwd utilities (usermod, useradd, ...)"
 url="http://pkg-shadow.alioth.debian.org/"
 arch="all"
 license="GPL"
 depends=""
 makedepends="linux-pam-dev"
-subpackages="$pkgname-doc $pkgname-dbg"
+subpackages="$pkgname-doc $pkgname-dbg $pkgname-uidmap"
 source="http://pkg-shadow.alioth.debian.org/releases/shadow-$pkgver.tar.xz
 	login.pamd
 	dots-in-usernames.patch
@@ -61,10 +62,21 @@ package() {
 	# Avoid conflict with man-pages.
 	rm "$pkgdir"/usr/share/man/man3/getspnam.3* \
 		"$pkgdir"/usr/share/man/man5/passwd.5* || return 1
+}
+
+uidmap() {
+	pkgdesc="Utilities for using subordinate UIDs and GIDs"
+
+	mkdir -p "$subpkgdir"
+	cd "$subpkgdir"
+
+	mkdir -p usr/bin
+	mv "$pkgdir"/usr/bin/new*idmap usr/bin/ || return 1
+	chmod 4711 usr/bin/new*idmap || return 1
 
 	# Used e.g. for unprivileged LXC containers.
-	touch "$pkgdir"/etc/subuid
-	touch "$pkgdir"/etc/subgid
+	mkdir etc
+	touch etc/subuid etc/subgid
 }
 
 md5sums="2bfafe7d4962682d31b5eba65dba4fc8  shadow-4.2.1.tar.xz