*** empty log message ***
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteManager.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteManager.java
index 4cb0c0f..4f0876b 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteManager.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteManager.java
@@ -7,7 +7,7 @@
  * 

  * Contributors:

  *     IBM Corporation - initial API and implementation

- *     Laurent Fournier (laurent@fourrier.nom.fr) - HTTP Proxy code and NetAccess Plugin 

+ *     Laurent Fourrier (laurent@fourrier.nom.fr) - HTTP Proxy code and NetAccess Plugin 

  *******************************************************************************/

 package org.eclipse.update.core;

 

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationPolicy.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationPolicy.java
index 6c922b1..854df27 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationPolicy.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationPolicy.java
@@ -40,7 +40,7 @@
 		setPolicy(configPolicy.getPolicy());

 		setConfiguredFeatureReferences(configPolicy.getConfiguredFeatures());

 		setUnconfiguredFeatureReferences(configPolicy.getUnconfiguredFeatures());

-		setConfiguredSiteModel(configPolicy.getConfiguredSiteModel());						

+		setConfiguredSiteModel(configPolicy.getConfiguredSiteModel());

 	}

 

 	/**

@@ -79,8 +79,6 @@
 		return false;

 	}

 

-

-

 	/**

 	 * adds the feature to the list of features if the policy is USER_INCLUDE

 	 */

@@ -98,7 +96,7 @@
 		try {

 			feature = featureReference.getFeature(null);

 		} catch (CoreException e) {

-			if (!UpdateManagerUtils.isOptional(featureReference)){			

+			if (!UpdateManagerUtils.isOptional(featureReference)) {

 				URL url = featureReference.getURL();

 				String urlString = (url != null) ? url.toExternalForm() : "<no feature reference url>";

 				UpdateCore.warn("Error retrieving feature:" + urlString, e);

@@ -166,8 +164,8 @@
 	 */

 	public boolean unconfigure(IFeatureReference featureReference, boolean callInstallHandler, boolean createActivity) throws CoreException {

 

-		if (isUnconfigured(featureReference)){

-			UpdateCore.warn("Feature already unconfigured");			

+		if (isUnconfigured(featureReference)) {

+			UpdateCore.warn("Feature already unconfigured");

 			return true;

 		}

 

@@ -180,7 +178,7 @@
 		try {

 			feature = featureReference.getFeature(null);

 		} catch (CoreException e) {

-			if (!UpdateManagerUtils.isOptional(featureReference)){

+			if (!UpdateManagerUtils.isOptional(featureReference)) {

 				URL url = featureReference.getURL();

 				String urlString = (url != null) ? url.toExternalForm() : "<no feature reference url>";

 				UpdateCore.warn("Error retrieving feature:" + urlString, e);

@@ -225,18 +223,18 @@
 			// or if the feature is mandatory and non of its parent are configured

 			// removed, not a core issue (so deep down)

 			//if (validateNoConfiguredParents(feature)) {

-				if (handler != null)

-					handler.unconfigureInitiated();

-				addUnconfiguredFeatureReference((FeatureReferenceModel) featureReference);

-				if (handler != null)

-					handler.completeUnconfigure();

+			if (handler != null)

+				handler.unconfigureInitiated();

+			addUnconfiguredFeatureReference((FeatureReferenceModel) featureReference);

+			if (handler != null)

+				handler.completeUnconfigure();

 

-				// everything done ok

-				if (activity != null) {

-					activity.setStatus(IActivity.STATUS_OK);

-					installConfig.addActivity(activity);

-				}

-				success = true;

+			// everything done ok

+			if (activity != null) {

+				activity.setStatus(IActivity.STATUS_OK);

+				installConfig.addActivity(activity);

+			}

+			success = true;

 			//} else {

 			//	if (activity != null) {

 			//		activity.setStatus(IActivity.STATUS_NOK);

@@ -278,19 +276,26 @@
 

 		String[] result;

 		String[] pluginsToWrite;

+

 		if (getPolicy() == IPlatformConfiguration.ISitePolicy.USER_EXCLUDE) {

 			//	EXCLUDE: return unconfigured plugins MINUS any plugins that

 			//           are configured

 			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION)

-				UpdateCore.warn("UNCONFIGURED PLUGINS");			

+				UpdateCore.warn("UNCONFIGURED PLUGINS");

 			String[] unconfigured = getPluginString(site, getUnconfiguredFeatures());

 			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION)

-				UpdateCore.warn("CONFIGURED PLUGINS");			

+				UpdateCore.warn("CONFIGURED PLUGINS");

 			String[] configured = getPluginString(site, getConfiguredFeatures());

-			pluginsToWrite = delta(configured, unconfigured);

+			if (isEnabled())

+				pluginsToWrite = delta(configured, unconfigured);

+			else

+				pluginsToWrite = union(configured, unconfigured);

 		} else {

 			// INCLUDE: return configured plugins

-			pluginsToWrite = getPluginString(site, getConfiguredFeatures());

+			if (isEnabled())

+				pluginsToWrite = getPluginString(site, getConfiguredFeatures());

+			else

+				pluginsToWrite = new String[0];

 		}

 

 		//TRACE

@@ -362,7 +367,7 @@
 	 * @return Returns a IConfiguredSite

 	 */

 	public IConfiguredSite getConfiguredSite() {

-		return (IConfiguredSite)getConfiguredSiteModel();

+		return (IConfiguredSite) getConfiguredSiteModel();

 	}

 

 	/**

@@ -429,7 +434,7 @@
 								//$NON-NLS-1$ //$NON-NLS-2$

 								pluginsString.add(path);

 								if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION)

-									UpdateCore.warn("Add plugin: "+path+" to the list");

+									UpdateCore.warn("Add plugin: " + path + " to the list");

 							}

 						}

 					}

@@ -466,7 +471,7 @@
 		List list1 = new ArrayList();

 		list1.addAll(Arrays.asList(allPlugins));

 		for (int i = 0; i < pluginsToRemove.length; i++) {

-			if (list1.contains(pluginsToRemove[i])){

+			if (list1.contains(pluginsToRemove[i])) {

 				list1.remove(pluginsToRemove[i]);

 			}

 		}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationPolicyModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationPolicyModel.java
index 703fed1..6f00d64 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationPolicyModel.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationPolicyModel.java
@@ -32,12 +32,16 @@
 	
 	// since 2.0.2
 	private ConfiguredSiteModel configuredSiteModel;
+	
+	// since 2.1
+	private boolean enable;
 
 	/**
 	 * Constructor for ConfigurationPolicyModel.
 	 */
 	public ConfigurationPolicyModel() {
 		super();
+		enable = true;
 		configuredFeatureReferences = new HashMap();
 		unconfiguredFeatureReferences = new HashMap();		
 	}
@@ -232,6 +236,20 @@
 	
 	}
 
+	/**
+	 * @return boolean
+	 */
+	public boolean isEnabled() {
+		return enable;
+	}
+
+	/**
+	 * @param value
+	 */
+	public void setEnabled(boolean value) {
+		enable = value;
+	}
+
 
 	
 }
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfiguredSiteModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfiguredSiteModel.java
index 91efc49..3971b10 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfiguredSiteModel.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfiguredSiteModel.java
@@ -26,14 +26,12 @@
 	private ConfigurationPolicyModel policy;
 	private InstallConfigurationModel installConfiguration;
 	private boolean installable = false;
-	private boolean enable;
 
 	/**
 	 * Constructor
 	 */
 	public ConfiguredSiteModel() {
 		super();
-		enable=true;
 	}
 
 	/**
@@ -169,14 +167,14 @@
 	 * @see org.eclipse.update.configuration.IConfiguredSite#isEnabled()
 	 */
 	public boolean isEnabled() {
-		return enable;
+		return getConfigurationPolicyModel().isEnabled();
 	}
 
 	/**
 	 * @see org.eclipse.update.configuration.IConfiguredSite#setEnabled(boolean)
 	 */
 	public void setEnabled(boolean value) {
-		enable=value;
+		getConfigurationPolicyModel().setEnabled(value);
 	}
 	
 }