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