diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/SelectionExtensionServer.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/SelectionExtensionServer.cs
index 783bbb90a4..75db9cd2c4 100644
--- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/SelectionExtensionServer.cs
+++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/SelectionExtensionServer.cs
@@ -103,39 +103,51 @@ namespace ICSharpCode.WpfDesign.Extensions
 	}
 	
 	/// <summary>
-	/// Applies an extension to the primary selection if Only One Item is Selected.
+	/// Applies an extension to the primary selection, but only when multiple Items are selected!
 	/// </summary>
-	public class OnlyOneItemSelectedExtensionServer : DefaultExtensionServer
+	public class PrimarySelectionButOnlyWhenMultipleSelectedExtensionServer : PrimarySelectionExtensionServer
 	{
-		DesignItem oldPrimarySelection;
-		bool oldCntBelowTwo = false;
+		/// <summary>
+		/// Is called after the extension server is initialized and the Context property has been set.
+		/// </summary>
+		protected override void OnInitialized()
+		{
+			base.OnInitialized();
+			this.Services.Selection.SelectionChanged += OnSelectionChanged;
+		}
+		
+		void OnSelectionChanged(object sender, EventArgs e)
+		{
+			ReapplyExtensions(this.Services.Selection.SelectedItems);			
+		}
 		
+		/// <summary>
+		/// Gets if the item is in the secondary selection.
+		/// </summary>
+		public override bool ShouldApplyExtensions(DesignItem extendedItem)
+		{
+			return Services.Selection.PrimarySelection == extendedItem && Services.Selection.SelectionCount > 1;
+		}
+	}
+	
+	/// <summary>
+	/// Applies an extension to the primary selection if Only One Item is Selected.
+	/// </summary>
+	public class OnlyOneItemSelectedExtensionServer : PrimarySelectionExtensionServer
+	{
 		/// <summary>
 		/// Is called after the extension server is initialized and the Context property has been set.
 		/// </summary>
 		protected override void OnInitialized()
 		{
 			base.OnInitialized();
-			this.Services.Selection.PrimarySelectionChanged += OnPrimarySelectionChanged;
-			this.Services.Selection.SelectionChanged += OnPrimarySelectionChanged;
+			this.Services.Selection.SelectionChanged += OnSelectionChanged;
 		}
 		
-		void OnPrimarySelectionChanged(object sender, EventArgs e)
+		void OnSelectionChanged(object sender, EventArgs e)
 		{
-			DesignItem newPrimarySelection = this.Services.Selection.PrimarySelection;
-			
-			if (oldPrimarySelection != newPrimarySelection || oldCntBelowTwo != (this.Services.Selection.SelectedItems.Count < 2))
-			{
-				if (oldPrimarySelection == null) {
-					ReapplyExtensions(new DesignItem[] { newPrimarySelection });
-				} else if (newPrimarySelection == null) {
-					ReapplyExtensions(new DesignItem[] { oldPrimarySelection });
-				} else {
-					ReapplyExtensions(new DesignItem[] { oldPrimarySelection, newPrimarySelection });
-				}
-				oldPrimarySelection = newPrimarySelection;
-				oldCntBelowTwo = this.Services.Selection.SelectedItems.Count < 2;
-			}
+			if (this.Services.Selection.SelectedItems.Count > 1)
+				ReapplyExtensions(this.Services.Selection.SelectedItems);
 		}
 		
 		/// <summary>
@@ -143,7 +155,7 @@ namespace ICSharpCode.WpfDesign.Extensions
 		/// </summary>
 		public override bool ShouldApplyExtensions(DesignItem extendedItem)
 		{
-			return (this.Services.Selection.SelectedItems.Count < 2 && this.Services.Selection.PrimarySelection == extendedItem);
+			return Services.Selection.PrimarySelection == extendedItem && Services.Selection.SelectionCount < 2;
 		}
 	}