*** empty log message ***
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/HierarchicalModelManager.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/HierarchicalModelManager.java
index ae8c977..c3769aa 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/HierarchicalModelManager.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/HierarchicalModelManager.java
@@ -14,7 +14,6 @@
 import org.eclipse.team.internal.ui.IPreferenceIds;
 import org.eclipse.team.internal.ui.TeamUIPlugin;
 import org.eclipse.team.ui.synchronize.ISynchronizePageConfiguration;
-import org.eclipse.team.ui.synchronize.StructuredViewerAdvisor;
 
 /**
  * Manager for hierarchical models
@@ -24,8 +23,8 @@
 	/**
 	 * @param configuration
 	 */
-	public HierarchicalModelManager(StructuredViewerAdvisor advisor, ISynchronizePageConfiguration configuration) {
-		super(advisor, configuration);
+	public HierarchicalModelManager(ISynchronizePageConfiguration configuration) {
+		super(configuration);
 	}
 	
 	/* (non-Javadoc)
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelManager.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelManager.java
index fea5b12..42dc88d 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelManager.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelManager.java
@@ -16,6 +16,7 @@
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.jface.viewers.*;
+import org.eclipse.team.internal.core.Assert;
 import org.eclipse.team.internal.ui.Policy;
 import org.eclipse.team.ui.synchronize.*;
 import org.eclipse.ui.IActionBars;
@@ -75,13 +76,20 @@
 		}
 	}
 	
-	public SynchronizeModelManager(StructuredViewerAdvisor advisor, ISynchronizePageConfiguration configuration) {
-		this.advisor = advisor;
+	public SynchronizeModelManager(ISynchronizePageConfiguration configuration) {
+		Assert.isNotNull(configuration, "configuration cannot be null"); //$NON-NLS-1$
 		this.configuration = configuration;
 		configuration.addActionContribution(this);
 	}
 	
 	/**
+	 * Initialize the model manager to be used with the provided advisor.
+	 */
+	public void setViewerAdvisor(StructuredViewerAdvisor advisor) {
+		this.advisor = advisor;
+	}
+	
+	/**
 	 * Return the list of supported model providers for this advisor.
 	 * @param viewer
 	 * @return
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizePageConfiguration.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizePageConfiguration.java
index 4ef14a9..35da310 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizePageConfiguration.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizePageConfiguration.java
@@ -56,6 +56,14 @@
 	 * set.
 	 */
 	public static final String P_ADVISOR = TeamUIPlugin.ID  + ".P_ADVISOR"; //$NON-NLS-1$
+	
+	/**
+	 * Property constant for the page's model  manager which is 
+	 * an instance of <code>SynchronizeModelManager</code>.
+	 * This property can be queried by clients but should not be
+	 * set.
+	 */
+	public static final String P_MODEL_MANAGER = TeamUIPlugin.ID  + ".P_MODEL_MANAGER"; //$NON-NLS-1$
 
 	/**
 	 * Property that gives access to a set the
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/StructuredViewerAdvisor.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/StructuredViewerAdvisor.java
index be814bc..21aa745 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/StructuredViewerAdvisor.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/StructuredViewerAdvisor.java
@@ -112,7 +112,15 @@
 	public StructuredViewerAdvisor(ISynchronizePageConfiguration configuration) {
 		this.configuration = configuration;
 		configuration.setProperty(SynchronizePageConfiguration.P_ADVISOR, this);
-		modelManager = createModelManager(configuration);
+		
+		// Allow the configuration to provide it's own model manager but if one isn't initialized, then
+		// simply use the default provided by the advisor.
+		modelManager = (SynchronizeModelManager)configuration.getProperty(SynchronizePageConfiguration.P_MODEL_MANAGER);
+		if(modelManager == null) {
+			modelManager = createModelManager(configuration);
+		}
+		Assert.isNotNull(modelManager, "model manager must be set");
+		modelManager.setViewerAdvisor(this);
 	}
 	
 	/**
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/TreeViewerAdvisor.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/TreeViewerAdvisor.java
index ff82a2b..dfbbc4a 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/TreeViewerAdvisor.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/TreeViewerAdvisor.java
@@ -244,15 +244,15 @@
 		viewer.getControl().setLayoutData(data);
 		initializeViewer(viewer);		
 	}
-	
+
 	/**
 	 * Create the model manager to be used by this advisor
 	 * @param configuration
 	 */
 	protected SynchronizeModelManager createModelManager(ISynchronizePageConfiguration configuration) {
-		return new HierarchicalModelManager(this, configuration);
+		return new HierarchicalModelManager(configuration);
 	}
-
+	
 	/* (non-Javadoc)
 	 * @see org.eclipse.team.ui.synchronize.viewers.StructuredViewerAdvisor#navigate(boolean)
 	 */
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestTreeViewerAdvisor.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestTreeViewerAdvisor.java
index 5d01323..31d412e 100644
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestTreeViewerAdvisor.java
+++ b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestTreeViewerAdvisor.java
@@ -26,7 +26,7 @@
 	 * @see org.eclipse.team.ui.synchronize.TreeViewerAdvisor#createModelManager(org.eclipse.team.ui.synchronize.ISynchronizePageConfiguration)
 	 */
 	protected SynchronizeModelManager createModelManager(ISynchronizePageConfiguration configuration) {
-		return  new SynchronizeModelManager(this, configuration) {
+		SynchronizeModelManager manager =  new SynchronizeModelManager(configuration) {
 			protected ISynchronizeModelProvider createModelProvider(String id) {
 				return new HierarchicalModelProvider(getSyncInfoSet());
 			}
@@ -38,5 +38,7 @@
 				return (SyncInfoTree)getConfiguration().getProperty(ISynchronizePageConfiguration.P_SYNC_INFO_SET);
 			}
 		};
+		manager.setViewerAdvisor(this);
+		return manager;
 	}
 }