diff --git a/org.eclipse.mylyn-feature/feature.xml b/org.eclipse.mylyn-feature/feature.xml
index 6f0788a..61b62ec 100644
--- a/org.eclipse.mylyn-feature/feature.xml
+++ b/org.eclipse.mylyn-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.mylar_feature"
       label="Mylar Task List (Required)"
-      version="2.0.0.v20070511-2000"
+      version="2.0.0.v20070514-1800"
       provider-name="Eclipse.org"
       plugin="org.eclipse.mylar">
 
@@ -225,63 +225,63 @@
          id="org.eclipse.mylar.doc"
          download-size="0"
          install-size="0"
-         version="2.0.0.v20070511-2000"
+         version="2.0.0.v20070514-1800"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.mylar"
          download-size="0"
          install-size="0"
-         version="2.0.0.v20070511-2000"
+         version="2.0.0.v20070514-1800"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.mylar.context.core"
          download-size="0"
          install-size="0"
-         version="2.0.0.v20070511-2000"
+         version="2.0.0.v20070514-1800"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.mylar.tasks.ui"
          download-size="0"
          install-size="0"
-         version="2.0.0.v20070511-2000"
+         version="2.0.0.v20070514-1800"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.mylar.tasks.core"
          download-size="0"
          install-size="0"
-         version="2.0.0.v20070511-2000"
+         version="2.0.0.v20070514-1800"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.mylar.tasks.web"
          download-size="0"
          install-size="0"
-         version="2.0.0.v20070511-2000"
+         version="2.0.0.v20070514-1800"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.mylar.monitor.core"
          download-size="0"
          install-size="0"
-         version="2.0.0.v20070511-2000"
+         version="2.0.0.v20070514-1800"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.mylar.monitor.ui"
          download-size="0"
          install-size="0"
-         version="2.0.0.v20070511-2000"
+         version="2.0.0.v20070514-1800"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.mylar.web"
          download-size="0"
          install-size="0"
-         version="2.0.0.v20070511-2000"
+         version="2.0.0.v20070514-1800"
          unpack="false"/>
 
 </feature>
diff --git a/org.eclipse.mylyn.bugzilla-feature/feature.xml b/org.eclipse.mylyn.bugzilla-feature/feature.xml
index 23d8b53..08d2f5e 100644
--- a/org.eclipse.mylyn.bugzilla-feature/feature.xml
+++ b/org.eclipse.mylyn.bugzilla-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.mylar.bugzilla_feature"
       label="Mylar Connector: Bugzilla"
-      version="2.0.0.v20070511-2000"
+      version="2.0.0.v20070514-1800"
       provider-name="Eclipse.org"
       plugin="org.eclipse.mylar">
 
@@ -218,21 +218,21 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.mylar_feature" version="2.0.0.v20070511-2000" match="perfect"/>
+      <import feature="org.eclipse.mylar_feature" version="2.0.0.v20070514-1800" match="perfect"/>
    </requires>
 
    <plugin
          id="org.eclipse.mylar.bugzilla.core"
          download-size="0"
          install-size="0"
-         version="2.0.0.v20070511-2000"
+         version="2.0.0.v20070514-1800"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.mylar.bugzilla.ui"
          download-size="0"
          install-size="0"
-         version="2.0.0.v20070511-2000"
+         version="2.0.0.v20070514-1800"
          unpack="false"/>
 
 </feature>
diff --git a/org.eclipse.mylyn.bugzilla.core/META-INF/MANIFEST.MF b/org.eclipse.mylyn.bugzilla.core/META-INF/MANIFEST.MF
index 2e1d419..7b8aade 100644
--- a/org.eclipse.mylyn.bugzilla.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.bugzilla.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mylar Bugzilla Connector Core Plug-in
 Bundle-SymbolicName: org.eclipse.mylar.bugzilla.core; singleton:=true
-Bundle-Version: 2.0.0.v20070511-2000
+Bundle-Version: 2.0.0.v20070514-1800
 Bundle-Activator: org.eclipse.mylar.internal.bugzilla.core.BugzillaCorePlugin
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.mylar.tasks.core,
diff --git a/org.eclipse.mylyn.bugzilla.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.bugzilla.ui/META-INF/MANIFEST.MF
index c5fcf11..302a6cd 100644
--- a/org.eclipse.mylyn.bugzilla.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.bugzilla.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mylar Bugzilla Client Ui Plug-in
 Bundle-SymbolicName: org.eclipse.mylar.bugzilla.ui; singleton:=true
-Bundle-Version: 2.0.0.v20070511-2000
+Bundle-Version: 2.0.0.v20070514-1800
 Bundle-Activator: org.eclipse.mylar.internal.bugzilla.ui.BugzillaUiPlugin
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.ui,
diff --git a/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF
index b21dd55..815d237 100644
--- a/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mylar Documentation Plug-in
 Bundle-SymbolicName: org.eclipse.mylar.doc; singleton:=true
-Bundle-Version: 2.0.0.v20070511-2000
+Bundle-Version: 2.0.0.v20070514-1800
 Eclipse-AutoStart: true
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.ui,
diff --git a/org.eclipse.mylyn.tasks.core/META-INF/MANIFEST.MF b/org.eclipse.mylyn.tasks.core/META-INF/MANIFEST.MF
index 47e01ac..541c990 100644
--- a/org.eclipse.mylyn.tasks.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.tasks.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mylar Tasks Core Plug-in
 Bundle-SymbolicName: org.eclipse.mylar.tasks.core;singleton:=true
-Bundle-Version: 2.0.0.v20070511-2000
+Bundle-Version: 2.0.0.v20070514-1800
 Eclipse-AutoStart: true 
 Bundle-Vendor: Eclipse.org
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/org.eclipse.mylyn.tasks.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.tasks.ui/META-INF/MANIFEST.MF
index 3f52318..3469564 100644
--- a/org.eclipse.mylyn.tasks.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.tasks.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mylar Tasks UI Plug-in
 Bundle-SymbolicName: org.eclipse.mylar.tasks.ui;singleton:=true
-Bundle-Version: 2.0.0.v20070511-2000
+Bundle-Version: 2.0.0.v20070514-1800
 Bundle-Activator: org.eclipse.mylar.tasks.ui.TasksUiPlugin
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-incoming-new.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-incoming-new.gif
index f0366b4..309b09d 100644
--- a/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-incoming-new.gif
+++ b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-incoming-new.gif
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-incoming-new.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-incoming-new.gif
new file mode 100644
index 0000000..a9dc04e
--- /dev/null
+++ b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-incoming-new.gif
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-incoming.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-incoming.gif
new file mode 100644
index 0000000..ab5483d
--- /dev/null
+++ b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-incoming.gif
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-outgoing.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-outgoing.gif
new file mode 100644
index 0000000..5f1c76a
--- /dev/null
+++ b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-outgoing.gif
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/priority-2.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/priority-2.gif
index 7b33bb8..4e4b55f 100644
--- a/org.eclipse.mylyn.tasks.ui/icons/eview16/priority-2.gif
+++ b/org.eclipse.mylyn.tasks.ui/icons/eview16/priority-2.gif
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeContainerImageDescriptor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeContainerImageDescriptor.java
index f99779b..2a772d8 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeContainerImageDescriptor.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeContainerImageDescriptor.java
@@ -39,7 +39,7 @@
 	protected void drawCompositeImage(int width, int height) {
 		drawImage(base, 0, 0);
 		if (overlay != null) {
-			drawImage(overlay, base.width+2, CompositeTaskImageDescriptor.OFFSET_SYNCH);
+			drawImage(overlay, base.width+2, 0);
 		}
 	}
 
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeTaskImageDescriptor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeTaskImageDescriptor.java
index 7696c56..214e588 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeTaskImageDescriptor.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeTaskImageDescriptor.java
@@ -23,31 +23,18 @@
 
 	private ImageData base;
 
-	private ImageData synchState;
-
 	private ImageData kind;
 	
 	protected Point size;
 
-	public static final int WIDTH_DECORATION = 5;
-	
-//	private static final int WIDTH_SYNCH = 9;//5;
-	
-	private static final int WIDTH_SQUISH = 0;
+	public static final int WIDTH_DECORATION = 6;
 	
 	private static final int WIDTH_ICON = 16;
-	
-	static final int OFFSET_SYNCH = 5;
 		
 	static int WIDTH;
 	
 	static {
-//		if (SWT.getPlatform().equals("win32")) {
-//			WIDTH_DECORATION = 0;
-//		} else {
-//			WIDTH_DECORATION = 4;
-//		}
-		WIDTH = WIDTH_DECORATION + WIDTH_ICON - WIDTH_SQUISH;
+		WIDTH = WIDTH_DECORATION + WIDTH_ICON;
 	}
 	
 	public CompositeTaskImageDescriptor(ImageDescriptor icon, ImageDescriptor overlayKind) {
@@ -55,9 +42,6 @@
 		if (overlayKind != null) {
 			this.kind = getImageData(overlayKind);
 		}
-//		if (synchState != null) {
-//			this.synchState = getImageData(synchState);
-//		} 
 		this.size = new Point(WIDTH, base.height);
 	}
 	
@@ -67,9 +51,6 @@
 		if (kind != null) {
 			drawImage(kind, WIDTH_DECORATION+5, 6);
 		}
-		if (synchState != null) {
-			drawImage(synchState, WIDTH_ICON /*WIDTH_SQUISH + 1*/, OFFSET_SYNCH);
-		}
 	}
 
 	private ImageData getImageData(ImageDescriptor descriptor) {
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiImages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiImages.java
index 5193838..d6e7967 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiImages.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiImages.java
@@ -145,6 +145,12 @@
 
 	public static final ImageDescriptor OVERLAY_OUTGOING = create(T_EVIEW, "overlay-outgoing.gif");
 
+	public static final ImageDescriptor OVERLAY_SYNCH_INCOMMING = create(T_EVIEW, "overlay-synch-incoming.gif");
+
+	public static final ImageDescriptor OVERLAY_SYNCH_INCOMMING_NEW = create(T_EVIEW, "overlay-synch-incoming-new.gif");
+
+	public static final ImageDescriptor OVERLAY_SYNCH_OUTGOING = create(T_EVIEW, "overlay-synch-outgoing.gif");
+	
 	public static final ImageDescriptor OVERLAY_CONFLICT = create(T_EVIEW, "overlay-conflicting.gif");
 
 	public static final ImageDescriptor OVERLAY_REPOSITORY = create(T_EVIEW, "overlay-repository.gif");
@@ -384,4 +390,4 @@
 		}
 	}
 		
-}
+}
\ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksPreferencePage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksPreferencePage.java
index 5b11d23..e5b93d2 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksPreferencePage.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksPreferencePage.java
@@ -443,7 +443,7 @@
 		group.setLayout(new GridLayout(1, false));
 		group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 		incomingOverlaysButton = new Button(group, SWT.CHECK);
-		incomingOverlaysButton.setText("Overlay synchronization state on task icons (for wide view)");
+		incomingOverlaysButton.setText("Use Synchronize View style incoming overlays and placement");
 		incomingOverlaysButton.setSelection(getPreferenceStore().getBoolean(
 				TaskListPreferenceConstants.INCOMING_OVERLAID));
 	}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java
index 634ad9a..052028b 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java
@@ -42,11 +42,20 @@
 
 	private Image taskInactiveContext = TasksUiImages.getImage(TasksUiImages.TASK_INACTIVE_CONTEXT);
 
+	// see bug 185004 
+	private int platformSpecificSquish = 0;
+	
 	CustomTaskListDecorationDrawer(TaskListView taskListView, int activationImageOffset) {
 		this.taskListView = taskListView;
 		this.activationImageOffset = activationImageOffset;
 		this.taskListView.synchronizationOverlaid = TasksUiPlugin.getDefault().getPluginPreferences().getBoolean(
 				TaskListPreferenceConstants.INCOMING_OVERLAID);
+		
+		if (SWT.getPlatform().equals("gtk")) {
+			platformSpecificSquish = 8;
+		} else if (SWT.getPlatform().equals("carbon")) {
+			platformSpecificSquish = 3;
+		}
 	}
 
 	/*
@@ -85,7 +94,6 @@
 						drawSyncronizationImage((ITaskListElement) data, event);
 					}
 				}
-// currWidth = event.width;
 				break;
 			}
 			case SWT.PaintItem: {
@@ -105,27 +113,33 @@
 		Image image = null;
 		int offsetX = 6;
 		int offsetY = (event.height / 2) - 5;
-		if (this.taskListView.synchronizationOverlaid) {
-			offsetX = event.x + 3;
+		if (taskListView.synchronizationOverlaid) {
+			offsetX = event.x + 19 - platformSpecificSquish;
+			offsetY += 2;
 		}
 		if (element instanceof AbstractTaskContainer) {
 			if (element instanceof AbstractTaskContainer) {
 				if (!Arrays.asList(this.taskListView.getViewer().getExpandedElements()).contains(element)
 						&& hasIncoming((AbstractTaskContainer) element)) {
-					image = TasksUiImages.getImage(TasksUiImages.STATUS_NORMAL_INCOMING);
-					offsetX = 24;
+					int additionalSquish = 0;
+					if (platformSpecificSquish > 0 && taskListView.synchronizationOverlaid) {
+						additionalSquish = platformSpecificSquish + 3;
+					}
+					if (taskListView.synchronizationOverlaid) {
+						image = TasksUiImages.getImage(TasksUiImages.OVERLAY_SYNCH_INCOMMING);
+						offsetX = 42 - additionalSquish;
+					} else {
+						image = TasksUiImages.getImage(TasksUiImages.STATUS_NORMAL_INCOMING);
+						offsetX = 24 - additionalSquish;						
+					}
 				}
 			}
 		} else {
-			image = TasksUiImages.getImage(TaskElementLabelProvider.getSynchronizationImageDescriptor(element));
-// image = TasksUiImages.getCompositeSynchImage(TaskElementLabelProvider
-// .getSynchronizationImageDescriptor(element), true);
+			image = TasksUiImages.getImage(TaskElementLabelProvider.getSynchronizationImageDescriptor(element, taskListView.synchronizationOverlaid));
 		}
 		if (image != null) {
 			event.gc.drawImage(image, offsetX, event.y + offsetY);
-// event.gc.drawImage(image, currWidth - 16, event.y + 1);
 		}
-// }
 	}
 
 	private boolean hasIncoming(AbstractTaskContainer container) {
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java
index 54282b8..ec75d68 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java
@@ -78,19 +78,14 @@
 	@Override
 	public Image getImage(Object element) {
 		CompositeImageDescriptor compositeDescriptor = getImageDescriptor(element, compositeImages);
-//		if (!compositeImages) {
-//			return TasksUiImages.getCompositeImage(compositeDescriptor.icon);
-//		} else {
-			if (element instanceof ITask || element instanceof AbstractQueryHit) {
-				return TasksUiImages.getCompositeTaskImage(compositeDescriptor.icon, compositeDescriptor.overlayKind,
-						compositeDescriptor.overlaySynch);
-			} else if (element instanceof AbstractTaskContainer) {
-				return TasksUiImages.getCompositeContainerImage(compositeDescriptor.icon,
-						compositeDescriptor.overlaySynch);
-			} else {
-				return TasksUiImages.getCompositeTaskImage(compositeDescriptor.icon, null, null);
-			}
-//		}
+		if (element instanceof ITask || element instanceof AbstractQueryHit) {
+			return TasksUiImages.getCompositeTaskImage(compositeDescriptor.icon, compositeDescriptor.overlayKind,
+					compositeDescriptor.overlaySynch);
+		} else if (element instanceof AbstractTaskContainer) {
+			return TasksUiImages.getCompositeContainerImage(compositeDescriptor.icon, compositeDescriptor.overlaySynch);
+		} else {
+			return TasksUiImages.getCompositeTaskImage(compositeDescriptor.icon, null, null);
+		}
 	}
 
 	private CompositeImageDescriptor getImageDescriptor(Object object, boolean showSynchState) {
@@ -113,7 +108,7 @@
 					compositeDescriptor.overlayKind = connectorUi.getTaskKindOverlay(repositoryTask);
 				}
 				if (showSynchState) {
-					compositeDescriptor.overlaySynch = getSynchronizationImageDescriptor(element);
+					compositeDescriptor.overlaySynch = getSynchronizationImageDescriptor(element, false);
 				}
 			} else if (element instanceof AbstractQueryHit) {
 				AbstractRepositoryTask repositoryTask = ((AbstractQueryHit) element).getCorrespondingTask();
@@ -124,24 +119,17 @@
 				connectorUi = TasksUiPlugin.getRepositoryUi(((AbstractRepositoryQuery) element).getRepositoryKind());
 			}
 
-//			if (element instanceof AbstractTaskContainer) {
-//				if (treeViewer != null && !Arrays.asList(treeViewer.getExpandedElements()).contains(element)
-//						&& hasIncoming((AbstractTaskContainer) element)) {
-//					compositeDescriptor.overlaySynch = TasksUiImages.STATUS_NORMAL_INCOMING;
-//				}
-//			}
-
 			if (connectorUi != null) {
 				compositeDescriptor.icon = connectorUi.getTaskListElementIcon(element);
 				return compositeDescriptor;
 			} else {
 				if (element instanceof ITask) {
 					if (showSynchState) {
-						compositeDescriptor.overlaySynch = getSynchronizationImageDescriptor(element);
+						compositeDescriptor.overlaySynch = getSynchronizationImageDescriptor(element, false);
 					}
 				} else if (element instanceof AbstractQueryHit) {
 					if (showSynchState) {
-						compositeDescriptor.overlaySynch = getSynchronizationImageDescriptor(element);
+						compositeDescriptor.overlaySynch = getSynchronizationImageDescriptor(element, false);
 					}
 				}
 
@@ -160,22 +148,34 @@
 		return compositeDescriptor;
 	}
 
-	public static ImageDescriptor getSynchronizationImageDescriptor(Object element) {
+	public static ImageDescriptor getSynchronizationImageDescriptor(Object element, boolean synchViewStyle) {
 		AbstractRepositoryTask repositoryTask = null;
 		ImageDescriptor imageDescriptor = null;
 		if (element instanceof AbstractQueryHit) {
 			repositoryTask = ((AbstractQueryHit) element).getCorrespondingTask();
 			if (repositoryTask == null) {
-				return TasksUiImages.STATUS_OVERLAY_INCOMMING_NEW;
+				if (synchViewStyle) {
+					return TasksUiImages.OVERLAY_SYNCH_INCOMMING_NEW;
+				} else {
+					return TasksUiImages.STATUS_OVERLAY_INCOMMING_NEW;
+				}
 			}
 		} else if (element instanceof AbstractRepositoryTask) {
 			repositoryTask = (AbstractRepositoryTask) element;
 		}
 		if (repositoryTask != null) {
 			if (repositoryTask.getSyncState() == RepositoryTaskSyncState.OUTGOING) {
-				imageDescriptor = TasksUiImages.STATUS_NORMAL_OUTGOING;
+				if (synchViewStyle) {
+					imageDescriptor = TasksUiImages.OVERLAY_SYNCH_OUTGOING;
+				} else {
+					imageDescriptor = TasksUiImages.STATUS_NORMAL_OUTGOING;
+				}
 			} else if (repositoryTask.getSyncState() == RepositoryTaskSyncState.INCOMING) {
-				imageDescriptor = TasksUiImages.STATUS_NORMAL_INCOMING;
+				if (synchViewStyle) {
+					imageDescriptor = TasksUiImages.OVERLAY_SYNCH_INCOMMING;
+				} else {
+					imageDescriptor = TasksUiImages.STATUS_NORMAL_INCOMING;
+				}
 			} else if (repositoryTask.getSyncState() == RepositoryTaskSyncState.CONFLICT) {
 				imageDescriptor = TasksUiImages.STATUS_NORMAL_CONFLICT;
 			}
@@ -185,7 +185,11 @@
 				return imageDescriptor;
 			}
 		} else if (element instanceof AbstractQueryHit) {
-			return TasksUiImages.STATUS_NORMAL_INCOMING;
+			if (synchViewStyle) {
+				return TasksUiImages.OVERLAY_SYNCH_INCOMMING;
+			} else {
+				return TasksUiImages.STATUS_NORMAL_INCOMING;
+			}
 		} else if (element instanceof AbstractTaskContainer) {
 			AbstractTaskContainer container = (AbstractTaskContainer) element;
 			if (container instanceof AbstractRepositoryQuery) {
@@ -211,16 +215,15 @@
 		if (element instanceof ITask || element instanceof AbstractQueryHit) {
 			ITask task = TaskElementLabelProvider.getCorrespondingTask((ITaskListElement) element);
 			if (task != null) {
-				return TasksUiImages.getImageDescriptorForPriority(PriorityLevel.fromString(task
-						.getPriority()));
-			} else if (element instanceof AbstractQueryHit){
-				return TasksUiImages.getImageDescriptorForPriority(PriorityLevel.fromString(((AbstractQueryHit)element)
-						.getPriority()));
+				return TasksUiImages.getImageDescriptorForPriority(PriorityLevel.fromString(task.getPriority()));
+			} else if (element instanceof AbstractQueryHit) {
+				return TasksUiImages.getImageDescriptorForPriority(PriorityLevel
+						.fromString(((AbstractQueryHit) element).getPriority()));
 			}
 		}
 		return null;
 	}
-	
+
 	@Override
 	public String getText(Object object) {
 		if (object instanceof AbstractQueryHit) {
@@ -336,8 +339,6 @@
 		} else if (element instanceof AbstractQueryHit) {
 			return getBackground(((AbstractQueryHit) element).getCorrespondingTask());
 		}
-		// return
-		// Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
 		return null;
 	}
 
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTipHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTipHandler.java
index 2fdf864..1b04e68 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTipHandler.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTipHandler.java
@@ -447,7 +447,7 @@
 
 			@Override
 			public void mouseHover(MouseEvent event) {
-				if (tipShell.isDisposed()) {
+				if (tipShell.isDisposed() || incommingTipLabelText.isDisposed()) {
 					return;
 				}
 				widgetPosition = new Point(event.x, event.y);
@@ -529,6 +529,7 @@
 		Rectangle shellBounds = shell.getBounds();
 
 		// We need to find the exact monitor we're mousing over
+		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=166990
 		Monitor[] array = PlatformUI.getWorkbench().getDisplay().getMonitors();
 		for (Monitor m : array) {
 			Rectangle monitorBounds = m.getBounds();
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
index 4a46dd0..17bde7e 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
@@ -551,8 +551,8 @@
 
 			// TODO: weird override of custom gradients
 			Color parentBackground = getViewer().getTree().getParent().getBackground();
-			double GRADIENT_TOP = 1.02;
-			double GRADIENT_BOTTOM = 1.035;
+			double GRADIENT_TOP = 1.05;//1.02;
+			double GRADIENT_BOTTOM = .995;//1.035;
 
 			int red = Math.min(255, (int) (parentBackground.getRed() * GRADIENT_TOP));
 			int green = Math.min(255, (int) (parentBackground.getGreen() * GRADIENT_TOP));
diff --git a/org.eclipse.mylyn.trac-feature/feature.xml b/org.eclipse.mylyn.trac-feature/feature.xml
index 57bc0f9..a08ae82 100644
--- a/org.eclipse.mylyn.trac-feature/feature.xml
+++ b/org.eclipse.mylyn.trac-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.mylar.trac_feature"
       label="Mylar Connector: Trac"
-      version="2.0.0.v20070511-2000"
+      version="2.0.0.v20070514-1800"
       provider-name="Eclipse.org"
       plugin="org.eclipse.mylar">
 
@@ -218,21 +218,21 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.mylar_feature" version="2.0.0.v20070511-2000" match="perfect"/>
+      <import feature="org.eclipse.mylar_feature" version="2.0.0.v20070514-1800" match="perfect"/>
    </requires>
 
    <plugin
          id="org.eclipse.mylar.trac.ui"
          download-size="0"
          install-size="0"
-         version="2.0.0.v20070511-2000"
+         version="2.0.0.v20070514-1800"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.mylar.trac.core"
          download-size="0"
          install-size="0"
-         version="2.0.0.v20070511-2000"
+         version="2.0.0.v20070514-1800"
          unpack="false"/>
 
 </feature>
diff --git a/org.eclipse.mylyn.trac.core/META-INF/MANIFEST.MF b/org.eclipse.mylyn.trac.core/META-INF/MANIFEST.MF
index c03ef85..416f9d8 100644
--- a/org.eclipse.mylyn.trac.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.trac.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mylar Trac Core Plug-in
 Bundle-SymbolicName: org.eclipse.mylar.trac.core;singleton:=true
-Bundle-Version: 2.0.0.v20070511-2000
+Bundle-Version: 2.0.0.v20070514-1800
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.mylar.context.core,
diff --git a/org.eclipse.mylyn.trac.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.trac.ui/META-INF/MANIFEST.MF
index b3fad5c..320b393 100644
--- a/org.eclipse.mylyn.trac.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.trac.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mylar Trac UI Plug-in
 Bundle-SymbolicName: org.eclipse.mylar.trac.ui;singleton:=true
-Bundle-Version: 2.0.0.v20070511-2000
+Bundle-Version: 2.0.0.v20070514-1800
 Bundle-Activator: org.eclipse.mylar.internal.trac.ui.TracUiPlugin
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.ui,
