Do this: source_i686=("http://example.com/release-${pkgver}-i386.tar.gz") md5sums_i686=('ffeeddccbbaa99887766554433221100') source_x86_64=("http://example.com/release-${pkgver}-x86_64.tar.gz") md5sums_x86_64=('00112233445566778899aabbccddeeff') package() { local tarball="${source_i686[0]}" [ "$CARCH" == x86_64 ] && tarball="${source_x86_64[0]}" tar xzf "$tarball" "$pkgdir" } This way you're making use of the feature that was introduced to streamline architecture dependency for metadata extraction that is needed for use with the AUR. If you read FS#43714 closely, it says basically what I just said, that the bash functions sometimes have to clean up after the fact that we want to be one set of metadata and the same in all places, on all architectures. Anything else would simply defeat the purpose of compatibility. cheers! mar77i