--- rpm-4.4.2/lib/depends.c.order 2006-11-20 11:17:13.000000000 +0000 +++ rpm-4.4.2/lib/depends.c 2006-11-20 11:19:19.000000000 +0000 @@ -1421,7 +1421,14 @@ (void) rpmteSetDegree(q, 0); tsbytes += rpmtePkgFileSize(q); - ordering[orderingCount] = rpmteAddedKey(q); + switch (rpmteType(q)) { + case TR_ADDED: + ordering[orderingCount] = rpmteAddedKey(q); + /*@switchbreak@*/ break; + case TR_REMOVED: + ordering[orderingCount] = RPMAL_NOMATCH; + /*@switchbreak@*/ break; + } orderingCount++; qlen--; loopcheck--; @@ -1618,7 +1625,7 @@ continue; j = needle->orIndex; - if ((q = ts->order[j]) == NULL) + if ((q = ts->order[j]) == NULL || needle->pkgKey == RPMAL_NOMATCH) continue; newOrder[newOrderCount++] = q;