diff -u --recursive a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h --- a/lib/libalpm/alpm.h 2010-07-03 02:23:20.000000000 +0300 +++ b/lib/libalpm/alpm.h 2010-11-16 10:17:30.800522586 +0200 @@ -239,6 +239,7 @@ off_t alpm_pkg_download_size(pmpkg_t *newpkg); alpm_list_t *alpm_pkg_unused_deltas(pmpkg_t *pkg); +int _alpm_pkg_should_ignore(pmpkg_t *pkg); /* * Deltas diff -u --recursive a/lib/libalpm/package.c b/lib/libalpm/package.c --- a/lib/libalpm/package.c 2010-07-03 02:23:20.000000000 +0300 +++ b/lib/libalpm/package.c 2010-11-16 10:37:40.772901476 +0200 @@ -784,7 +784,7 @@ * * @return 1 if the package should be ignored, 0 otherwise */ -int _alpm_pkg_should_ignore(pmpkg_t *pkg) +int SYMEXPORT _alpm_pkg_should_ignore(pmpkg_t *pkg) { alpm_list_t *groups = NULL; diff -u --recursive a/src/pacman/query.c b/src/pacman/query.c --- a/src/pacman/query.c 2010-06-24 16:23:29.000000000 +0300 +++ b/src/pacman/query.c 2010-11-16 10:10:23.000000000 +0200 @@ -357,7 +357,8 @@ return(0); } /* check if this pkg is outdated */ - if(config->op_q_upgrade && (alpm_sync_newversion(pkg, alpm_option_get_syncdbs()) == NULL)) { + if(config->op_q_upgrade && (alpm_sync_newversion(pkg, alpm_option_get_syncdbs()) == NULL + || _alpm_pkg_should_ignore(pkg))) { return(0); } return(1);