--- rpm-5.4.10/lib/rpmal.c~ 2012-11-30 13:20:59.087249280 +0100 +++ rpm-5.4.10/lib/rpmal.c 2012-11-30 21:20:20.856611761 +0100 @@ -403,6 +403,7 @@ const char * KName; availablePackage alp; int rc; + int savedIx; if (keyp) *keyp = RPMAL_NOMATCH; @@ -450,10 +451,12 @@ if (alp->provides != NULL) /* XXX can't happen */ switch (match->type) { case IET_PROVIDES: + savedIx = rpmdsIx(alp->provides); /* XXX single step on rpmdsNext to regenerate DNEVR string */ (void) rpmdsSetIx(alp->provides, match->entryIx - 1); if (rpmdsNext(alp->provides) >= 0) rc = rpmdsCompare(alp->provides, ds); + (void) rpmdsSetIx(alp->provides, savedIx); if (rc) rpmdsNotify(ds, _("(added provide)"), 0);