diff --git a/abuild b/abuild
index 0f291ce7dce7d867b51f6012b36620835645aa70..8f1e04047cd2cabea8e05490520c1f1a1ec3feb0 100755
--- a/abuild
+++ b/abuild
@@ -12,7 +12,7 @@ abuild_ver=1.14
 
 startdir="$PWD"
 srcdir=${srcdir:-"$startdir/src"}
-pkgdir=${pkgdir:-"$startdir/pkg"}
+pkgdirbase=${pkgdirbase:-"$startdir/pkg"}
 pkgrel=0
 repo=${startdir%/*}
 repo=${repo##*/}
@@ -260,7 +260,7 @@ subpkg() {
 		local func=$(get_split_func $i)
 		# call abuild recursively, setting subpkg{dir,name}
 		msg "Running split function $func..."
-		subpkgdir="$startdir/pkg-$func" subpkgname="${i%:*}" \
+		subpkgdir="$pkgdirbase/${i%:*}" subpkgname="${i%:*}" \
 			$0 $func package || return 1
 	done
 }
@@ -800,6 +800,7 @@ if [ -n "$subpkgname" ]; then
 	subpackages=
 	install=
 fi
+pkgdir="${pkgdirbase}/$pkgname"
 
 trap 'die "Aborted by user"' INT
 set_xterm_title "abuild: $pkgname"