--- rpm-4.4.2/lib/transaction.c.ghostconflicts 2005-06-11 15:37:34.000000000 -0400 +++ rpm-4.4.2/lib/transaction.c 2005-11-28 13:25:25.000000000 -0500 @@ -165,6 +165,7 @@ for (i = 0; i < sharedCount; i++, shared++) { int otherFileNum, fileNum; int isCfgFile; + int isGhostFile; otherFileNum = shared->otherFileNum; (void) rpmfiSetFX(otherFi, otherFileNum); @@ -177,6 +178,7 @@ FColor &= tscolor; isCfgFile = ((rpmfiFFlags(otherFi) | rpmfiFFlags(fi)) & RPMFILE_CONFIG); + isGhostFile = ((rpmfiFFlags(otherFi) & RPMFILE_GHOST) && (rpmfiFFlags(fi) & RPMFILE_GHOST)); #ifdef DYING /* XXX another tedious segfault, assume file state normal. */ @@ -187,6 +189,9 @@ if (XFA_SKIPPING(fi->actions[fileNum])) continue; + if (isGhostFile) + continue; + if (rpmfiCompare(otherFi, fi)) { int rConflicts;