Index: Rhino.ServiceBus.Tests/FlatQueueStrategyTests.cs
===================================================================
--- Rhino.ServiceBus.Tests/FlatQueueStrategyTests.cs	(revision 1919)
+++ Rhino.ServiceBus.Tests/FlatQueueStrategyTests.cs	(working copy)
@@ -13,7 +13,7 @@
             queue.Send(new TestMessage {Name = "ayende"});
             Message msg = queue.Peek();
             Assert.Equal(1, queue.GetCount());
-            queueStrategy.MoveToErrorsQueue(queue, msg);
+            queueStrategy.TryMoveMessage(queue, msg, SubQueue.Errors);
             Assert.Equal(0, queue.GetCount());
         }
 
Index: Rhino.ServiceBus.Tests/MsmqFlatQueueTestBase.cs
===================================================================
--- Rhino.ServiceBus.Tests/MsmqFlatQueueTestBase.cs	(revision 1917)
+++ Rhino.ServiceBus.Tests/MsmqFlatQueueTestBase.cs	(working copy)
@@ -129,7 +129,6 @@
             {
                 new AdministrativeAction(),
                 new ErrorAction(5, qs),
-                new ErrorDescriptionAction(qs),
                 new ShutDownAction(),
                 new TimeoutAction(qs)
             };
Index: Rhino.ServiceBus.Tests/MsmqTestBase.cs
===================================================================
--- Rhino.ServiceBus.Tests/MsmqTestBase.cs	(revision 1917)
+++ Rhino.ServiceBus.Tests/MsmqTestBase.cs	(working copy)
@@ -138,7 +138,6 @@
                 {
                     new AdministrativeAction(),
                     new ErrorAction(5, qs),
-                    new ErrorDescriptionAction(qs),
                     new ShutDownAction(),
                     new TimeoutAction(qs)
                 };
Index: Rhino.ServiceBus/Msmq/AbstractMsmqListener.cs
===================================================================
--- Rhino.ServiceBus/Msmq/AbstractMsmqListener.cs	(revision 1919)
+++ Rhino.ServiceBus/Msmq/AbstractMsmqListener.cs	(working copy)
@@ -137,9 +137,7 @@
             try
             {
                 var queue = new MessageQueue(MsmqUtil.GetQueuePath(endpoint), QueueAccessMode.SendAndReceive);
-                var filter = new MessagePropertyFilter();
-                filter.SetAll();
-                queue.MessageReadPropertyFilter = filter;
+                queue.MessageReadPropertyFilter.SetAll();
                 return queue;
             }
             catch (Exception e)
Index: Rhino.ServiceBus/Msmq/FlatQueueStrategy.cs
===================================================================
--- Rhino.ServiceBus/Msmq/FlatQueueStrategy.cs	(revision 1919)
+++ Rhino.ServiceBus/Msmq/FlatQueueStrategy.cs	(working copy)
@@ -63,21 +63,6 @@
 		}
 
 		/// <summary>
-		/// Moves the <paramref name="message"/> to errors queue.
-		/// </summary>
-		/// <param name="queue">The queue.</param>
-		/// <param name="message">The message.</param>
-		public string MoveToErrorsQueue(MessageQueue queue, Message message)
-		{
-			using (var destinationQueue = new MessageQueue(GetErrorsQueuePath(), QueueAccessMode.Send))
-			{
-			    var sentMessage = queue.ReceiveByLookupId(message.LookupId);
-			    destinationQueue.Send(sentMessage, queue.GetTransactionType());
-			    return sentMessage.Id;
-			}
-		}
-
-		/// <summary>
 		/// Moves the <paramref name="message"/> to the timeout queue.
 		/// </summary>
 		/// <param name="queue">The queue.</param>
Index: Rhino.ServiceBus/Msmq/IQueueStrategy.cs
===================================================================
--- Rhino.ServiceBus/Msmq/IQueueStrategy.cs	(revision 1919)
+++ Rhino.ServiceBus/Msmq/IQueueStrategy.cs	(working copy)
@@ -19,13 +19,6 @@
         /// <returns></returns>
         Uri CreateSubscriptionQueueUri(Uri subscriptionQueue);
         
-        /// <summary>
-        /// Moves the <paramref name="message"/> to errors queue.
-        /// </summary>
-        /// <param name="queue">The queue.</param>
-        /// <param name="message">The message.</param>
-        string MoveToErrorsQueue(MessageQueue queue, Message message);
-        
 		/// <summary>
 		/// Moves the <paramref name="message"/> to the timeout queue.
 		/// </summary>
Index: Rhino.ServiceBus/Msmq/MessageType.cs
===================================================================
--- Rhino.ServiceBus/Msmq/MessageType.cs	(revision 1917)
+++ Rhino.ServiceBus/Msmq/MessageType.cs	(working copy)
@@ -3,7 +3,6 @@
 	public enum MessageType
 	{
 		StandardMessage = 0,
-		ErrorDescriptionMessageMarker = 2,
 		ShutDownMessageMarker = 3,
 		AdministrativeMessageMarker = 4,
 		TimeoutMessageMarker = 5,
Index: Rhino.ServiceBus/Msmq/SubQueueStrategy.cs
===================================================================
--- Rhino.ServiceBus/Msmq/SubQueueStrategy.cs	(revision 1919)
+++ Rhino.ServiceBus/Msmq/SubQueueStrategy.cs	(working copy)
@@ -28,17 +28,6 @@
 		}
 
 		/// <summary>
-		/// Moves the <paramref name="message"/> to errors queue.
-		/// </summary>
-		/// <param name="queue">The queue.</param>
-		/// <param name="message">The message.</param>
-		public string MoveToErrorsQueue(MessageQueue queue, Message message)
-		{
-			queue.MoveToSubQueue("errors", message);
-		    return message.Id;
-		}
-
-		/// <summary>
 		/// Moves the <paramref name="message"/> to the timeout queue.
 		/// </summary>
 		/// <param name="queue">The queue.</param>
Index: Rhino.ServiceBus/Msmq/TransportActions/ErrorAction.cs
===================================================================
--- Rhino.ServiceBus/Msmq/TransportActions/ErrorAction.cs	(revision 1915)
+++ Rhino.ServiceBus/Msmq/TransportActions/ErrorAction.cs	(working copy)
@@ -97,17 +97,19 @@
 
         private void MoveToErrorQueue(MessageQueue queue, Message message, string exceptionText)
         {
-            var msgId = queueStrategy.MoveToErrorsQueue(queue, message);
+            Message msg = message.SetSubQueueToSendTo(SubQueue.Errors);
+            queue.Send(msg, queue.GetTransactionType());
             var label = "Error description for " + message.Label;
             if (label.Length > 249)
                 label = label.Substring(0, 246) + "...";
-            queue.Send(new Message
+            var desc = new Message
             {
-                AppSpecific = (int)MessageType.ErrorDescriptionMessageMarker,
+                AppSpecific = msg.AppSpecific,
                 Label = label,
                 Body = exceptionText,
-                CorrelationId = msgId,
-            }, queue.GetTransactionType());
+                CorrelationId = msg.Id,
+            };
+            queue.Send(desc, queue.GetTransactionType());
 
             logger.WarnFormat("Moving message {0} to errors subqueue because: {1}", message.Id,
                               exceptionText);
Index: Rhino.ServiceBus/Rhino.ServiceBus.csproj
===================================================================
--- Rhino.ServiceBus/Rhino.ServiceBus.csproj	(revision 1917)
+++ Rhino.ServiceBus/Rhino.ServiceBus.csproj	(working copy)
@@ -136,7 +136,6 @@
     <Compile Include="Msmq\TimeoutInfo.cs" />
     <Compile Include="Msmq\TransportActions\AdministrativeAction.cs" />
     <Compile Include="Msmq\TransportActions\ErrorAction.cs" />
-    <Compile Include="Msmq\TransportActions\ErrorDescriptionAction.cs" />
     <Compile Include="Msmq\TransportActions\AbstractTransportAction.cs" />
     <Compile Include="Msmq\TransportActions\ITransportAction.cs" />
     <Compile Include="Msmq\TransportActions\TimeoutAction.cs" />
