diff --git a/groups/261.native_packages_x11.group b/groups/261.native_packages_x11.group
index 838c3f1..bcee5ea 100644
--- a/groups/261.native_packages_x11.group
+++ b/groups/261.native_packages_x11.group
@@ -73,7 +73,7 @@ xtrans xwd xwin";
 : ${PKG_GTK2_URL:=http://ftp.gnome.org/pub/gnome/sources/gtk+/${PKG_GTK2_VERSION%.*}/gtk+-${PKG_GTK2_VERSION}.tar.xz};
 : ${PKG_GTK2_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2 -I${PREFIX_NATIVE}/include/pango-1.0 -I${PREFIX_NATIVE}/include/gdk-pixbuf-2.0 -I${PREFIX_NATIVE}/include/atk-1.0 -I${PREFIX_NATIVE}/include/cairo -I${PREFIX_NATIVE}/include/glib-2.0 -I${PREFIX_NATIVE}/include/glib-2.0/gio -I${PREFIX_NATIVE}/lib/glib-2.0/include"};
 : ${PKG_GTK2_CONFIGURE_ARGS_EXTRA:="--disable-cups --disable-papi"};
-: ${PKG_GTK3_DEPENDS:="atk cairo fontconfig freetype gdk glib harfbuzz libepoxy libX11 libXext libXfixes libXi pango"};
+: ${PKG_GTK3_DEPENDS:="atk at_spi2_atk cairo fontconfig freetype gdk glib harfbuzz libepoxy libX11 libXext libXfixes libXi pango"};
 : ${PKG_GTK3_SHA256SUM:=d299612b018cfed7b2c689168ab52b668023708e17c335eb592260d186f15e1f};
 : ${PKG_GTK3_VERSION:=3.22.28};
 : ${PKG_GTK3_URL:=https://download.gnome.org/sources/gtk+/${PKG_GTK3_VERSION%.*}/gtk+-${PKG_GTK3_VERSION}.tar.xz};
diff --git a/subr/ex_pkg_dispatch.subr b/subr/ex_pkg_dispatch.subr
index 89396ec..399b860 100644
--- a/subr/ex_pkg_dispatch.subr
+++ b/subr/ex_pkg_dispatch.subr
@@ -21,9 +21,10 @@ exp_pkg_check_depends() {
 };
 
 exp_pkg_dispatch_group() {
-	local _njob=0 _pkg_depends="" _pkg_name="";
+	local _njob=0 _pkg_depends="" _pkg_name="" _pkg_skipfl=0;
 	for _njob in $(seq 1 $((${_njobs_max}-${_njobs}))); do
 		for _pkg_name in ${_pkg_names}; do
+			_pkg_skipfl=0;
 			if [ -z "$(ex_rtl_lsearch "${_pkgs_complete}" "${_pkg_name}")" ]\
 			&& [ -z "$(ex_rtl_lsearch "${_pkgs_wait}" "${_pkg_name}")" ]\
 			&& _pkg_depends="$(exp_pkg_expand_packages $(ex_rtl_get_var_unsafe "PKG_$(ex_rtl_toupper "${_pkg_name}")_DEPENDS"))"\
@@ -33,6 +34,8 @@ exp_pkg_dispatch_group() {
 					"${_stderrout_path}" "${_pipe_path}"; then
 				_pkgs_found_new="${_pkgs_found_new:+${_pkgs_found_new} }${_pkg_name}";
 				break;
+			elif [ "${_pkg_skipfl:-0}" -eq 1 ]; then
+				continue;
 			fi;
 		done;
 	done;
@@ -40,19 +43,19 @@ exp_pkg_dispatch_group() {
 
 exp_pkg_dispatch_package() {
 	local _dispatch_fn="${1}" _group_name="${2}" _pkg_name="${3}" _restart="${4}" _restart_at="${5}"	\
-		_stderrout_path="${6}" _pipe_path="${7}" _pkg_name_uc="";
+		_stderrout_path="${6}" _pipe_path="${7}" _pkg_name_uc="" _rc=0;
 	_pkg_name_uc="$(ex_rtl_toupper "${_pkg_name}")";
 	if [ -n "$(ex_rtl_get_var_unsafe PKG_${_pkg_name_uc}_DISABLED)" ]; then
 		_pkgs_complete="${_pkgs_complete:+${_pkgs_complete} }${_pkg_name}";
 		_pkg_names="$(ex_rtl_lfilter "${_pkg_names}" "${_pkg_name}")";
-		: $((_pkgs_count+=1));
+		: $((_pkgs_count+=1)); _pkg_skipfl=1; _rc=1;
 		"${_dispatch_fn}" disabled_pkg "${_group_name}" "${_pkg_name}" "${_pkgs_count}" "${_pkgs_count_max}";
 	elif ex_pkg_state_test "${_pkg_name}" finish\
 	&& [ -z "$(ex_rtl_lsearch "${_restart}" "${_pkg_name}")" ]\
 	&& [ "${ARG_RESTART_RECURSIVE:-0}" -ne 2 ]; then
 		_pkgs_complete="${_pkgs_complete:+${_pkgs_complete} }${_pkg_name}";
 		_pkg_names="$(ex_rtl_lfilter "${_pkg_names}" "${_pkg_name}")";
-		: $((_pkgs_count+=1));
+		: $((_pkgs_count+=1)); _pkg_skipfl=1; _rc=1;
 		"${_dispatch_fn}" skipped_pkg "${_group_name}" "${_pkg_name}" "${_pkgs_count}" "${_pkgs_count_max}";
 	else
 		: $((_pkgs_count+=1)); _pkgs_wait="${_pkgs_wait:+${_pkgs_wait} }${_pkg_name}";
@@ -64,6 +67,7 @@ exp_pkg_dispatch_package() {
 			"${_dispatch_fn}";) 1>"${_stderrout_path}" 2>&1 3>"${_pipe_path}" &
 		: $((_njobs+=1));
 	fi;
+	return "${_rc}";
 };
 
 exp_pkg_expand_packages() {