--- rpm-5.3.12/lib/rpmds.c.55810~ 2011-07-12 18:15:29.016085065 +0200 +++ rpm-5.3.12/lib/rpmds.c 2011-07-12 18:15:56.300506314 +0200 @@ -4333,7 +4333,7 @@ assert((rpmdsFlags(B) & RPMSENSE_SENSEMA case 'D': ix = RPMEVR_D; /*@switchbreak@*/break; } #if defined(RPM_VENDOR_MANDRIVA) /* mdvbz#55810 */ - if(ix == RPMEVR_R && (bFlags & (~RPMSENSE_GREATER & RPMSENSE_EQUAL)) + if(ix >= RPMEVR_R && (bFlags & (~RPMSENSE_GREATER & RPMSENSE_EQUAL)) && *(b->F[ix]) == '\0') break; if (a->F[ix] && b->F[ix]) --- rpm-5.3.12/rpmdb/rpmevr.c.55810~ 2011-07-12 18:15:40.964269535 +0200 +++ rpm-5.3.12/rpmdb/rpmevr.c 2011-07-12 18:15:42.897299380 +0200 @@ -286,7 +286,7 @@ assert(b->F[RPMEVR_D] != NULL); case 'D': ix = RPMEVR_D; /*@switchbreak@*/break; } #if defined(RPM_VENDOR_MANDRIVA) /* mdvbz#55810 */ - if(ix == RPMEVR_R && (b->Flags & (~RPMSENSE_GREATER & RPMSENSE_EQUAL)) + if(ix >= RPMEVR_R && (b->Flags & (~RPMSENSE_GREATER & RPMSENSE_EQUAL)) && *(b->F[ix]) == '\0') break; #endif