flashing fix
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TableItem.java b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TableItem.java
index 0ce55db..ea9e173 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TableItem.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TableItem.java
@@ -1202,6 +1202,7 @@
 	if (color != null && color.isDisposed ()) {
 		SWT.error (SWT.ERROR_INVALID_ARGUMENT);
 	}
+	if (background == color) return;
 	if (background != null && background.equals (color)) return;
 	background = color;
 	redraw();
@@ -1236,6 +1237,7 @@
 	if (cellBackground == null) {
 		cellBackground = new Color [count];
 	}
+	if (cellBackground [index] == color) return;
 	if (cellBackground [index] != null && cellBackground [index].equals (color)) return;
 	cellBackground [index] = color;
 	redraw ();
@@ -1263,6 +1265,7 @@
 	if (font != null && font.isDisposed ()) {
 		SWT.error (SWT.ERROR_INVALID_ARGUMENT);
 	}
+	if (this.font == font) return;
 	if (this.font != null && this.font.equals (font)) return;
 	this.font = font;
 	redraw ();
@@ -1298,6 +1301,7 @@
 	if (cellFont == null) {
 		cellFont = new Font [count];
 	}
+	if (cellFont [index] == font) return;
 	if (cellFont [index] != null && cellFont [index].equals (font)) return;
 	cellFont [index] = font;
 	redraw ();
@@ -1326,6 +1330,7 @@
 	if (color != null && color.isDisposed ()) {
 		SWT.error (SWT.ERROR_INVALID_ARGUMENT);
 	}
+	if (foreground == color) return;
 	if (foreground != null && foreground.equals (color)) return;
 	foreground = color;
 	redraw(); 
@@ -1360,6 +1365,7 @@
 	if (cellForeground == null) {
 		cellForeground = new Color [count];
 	}
+	if (cellForeground [index] == color) return;
 	if (cellForeground [index] != null && cellForeground [index].equals (color)) return;
 	cellForeground [index] = color;
 	redraw ();
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeItem.java b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeItem.java
index c814092..8097548 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeItem.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeItem.java
@@ -1324,6 +1324,7 @@
 	if (color != null && color.isDisposed ()) {
 		SWT.error (SWT.ERROR_INVALID_ARGUMENT);
 	}
+	if (background == color) return;
 	if (background != null && background.equals (color)) return;
 	background = color;	
 	redraw();
@@ -1368,6 +1369,7 @@
 	if (font != null && font.isDisposed ()) {
 		SWT.error (SWT.ERROR_INVALID_ARGUMENT);
 	}
+	if (this.font == font) return;
 	if (this.font != null && this.font.equals (font)) return;
 	this.font = font;
 	redraw ();
@@ -1397,6 +1399,7 @@
 	if (color != null && color.isDisposed ()) {
 		SWT.error (SWT.ERROR_INVALID_ARGUMENT);
 	}
+	if (foreground == color) return;
 	if (foreground != null && foreground.equals (color)) return;
 	foreground = color;
 	redraw();