diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
index 594008c..2ee8c3d 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
@@ -66,19 +66,22 @@
 					Diff diff = myDiffNode.getDiff();
 					switch(diff.getDiffType()){
 						  case Differencer.ADDITION:
-						  return getCompareConfiguration().getImage(image, Differencer.ADDITION);
+						  return getCompareConfiguration().getImage(image, Differencer.ADDITION | Differencer.LEFT);
 					
 						  case Differencer.DELETION:
-						  return getCompareConfiguration().getImage(image, Differencer.DELETION);
+						  return getCompareConfiguration().getImage(image, Differencer.DELETION | Differencer.LEFT);
+						  
+						  default:
+							  return  getCompareConfiguration().getImage(image, Differencer.CHANGE | Differencer.LEFT);
 					}
-					break;
+	
 				
 				case PatcherDiffNode.HUNK:
 					Hunk hunk = myDiffNode.getHunk();
-					return getImageFor((hunk.fMatches ? "" : error),image, hunk.fMatches); //$NON-NLS-1$	
+					return getCompareConfiguration().getImage(getImageFor((hunk.fMatches ? "" : error),image, hunk.fMatches), Differencer.NO_CHANGE); //$NON-NLS-1$	
 				}
 			}
-			return null;
+			return getCompareConfiguration().getImage(image, Differencer.NO_CHANGE);
 		}
 
 		private Image getImageFor(String id, Image image, boolean hasMatches) {
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
index 594008c..2ee8c3d 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
@@ -66,19 +66,22 @@
 					Diff diff = myDiffNode.getDiff();
 					switch(diff.getDiffType()){
 						  case Differencer.ADDITION:
-						  return getCompareConfiguration().getImage(image, Differencer.ADDITION);
+						  return getCompareConfiguration().getImage(image, Differencer.ADDITION | Differencer.LEFT);
 					
 						  case Differencer.DELETION:
-						  return getCompareConfiguration().getImage(image, Differencer.DELETION);
+						  return getCompareConfiguration().getImage(image, Differencer.DELETION | Differencer.LEFT);
+						  
+						  default:
+							  return  getCompareConfiguration().getImage(image, Differencer.CHANGE | Differencer.LEFT);
 					}
-					break;
+	
 				
 				case PatcherDiffNode.HUNK:
 					Hunk hunk = myDiffNode.getHunk();
-					return getImageFor((hunk.fMatches ? "" : error),image, hunk.fMatches); //$NON-NLS-1$	
+					return getCompareConfiguration().getImage(getImageFor((hunk.fMatches ? "" : error),image, hunk.fMatches), Differencer.NO_CHANGE); //$NON-NLS-1$	
 				}
 			}
-			return null;
+			return getCompareConfiguration().getImage(image, Differencer.NO_CHANGE);
 		}
 
 		private Image getImageFor(String id, Image image, boolean hasMatches) {
