Clarify the semantics of the ReceiveNoWait method to remove some confusion on its usage.
diff --git a/src/main/csharp/IMessageConsumer.cs b/src/main/csharp/IMessageConsumer.cs
index be4fdaa..3b17318 100644
--- a/src/main/csharp/IMessageConsumer.cs
+++ b/src/main/csharp/IMessageConsumer.cs
@@ -16,64 +16,67 @@
  */
 namespace Apache.NMS
 {
-	/// <summary>
-	/// A delegate that can receive messages async.
-	/// </summary>
-	public delegate void MessageListener(IMessage message);
+    /// <summary>
+    /// A delegate that can receive messages async.
+    /// </summary>
+    public delegate void MessageListener(IMessage message);
 
-	/// <summary>
-	/// A delegate that a client can register that will be called each time a consumer dispatches a message
-	/// to the client code to allow the client to Transform a received message from one type to another,
-	/// StreamMessage to TextMessage, ObjectMessage to TextMessage containing XML, etc.  This allows a
-	/// client to create a consumer that will automatically transform a message to a type that the client is
-	/// capable of processing or adding additional information to a received message.  For messages that do
-	/// not need to be processed the client should return null from this method, in this case the original
-	/// message will be dispatched to the client.
-	/// </summary>
-	public delegate IMessage ConsumerTransformerDelegate(ISession session, IMessageConsumer consumer, IMessage message);
+    /// <summary>
+    /// A delegate that a client can register that will be called each time a consumer dispatches a message
+    /// to the client code to allow the client to Transform a received message from one type to another,
+    /// StreamMessage to TextMessage, ObjectMessage to TextMessage containing XML, etc.  This allows a
+    /// client to create a consumer that will automatically transform a message to a type that the client is
+    /// capable of processing or adding additional information to a received message.  For messages that do
+    /// not need to be processed the client should return null from this method, in this case the original
+    /// message will be dispatched to the client.
+    /// </summary>
+    public delegate IMessage ConsumerTransformerDelegate(ISession session, IMessageConsumer consumer, IMessage message);
 
-	/// <summary>
-	/// A consumer of messages
-	/// </summary>
-	public interface IMessageConsumer : System.IDisposable
-	{
-		/// <summary>
-		/// Waits until a message is available and returns it
-		/// </summary>
-		IMessage Receive();
+    /// <summary>
+    /// A consumer of messages
+    /// </summary>
+    public interface IMessageConsumer : System.IDisposable
+    {
+        /// <summary>
+        /// Waits until a message is available and returns it
+        /// </summary>
+        IMessage Receive();
 
-		/// <summary>
-		/// If a message is available within the timeout duration it is returned otherwise this method returns null
-		/// </summary>
-		IMessage Receive(System.TimeSpan timeout);
+        /// <summary>
+        /// If a message is available within the timeout duration it is returned otherwise this method returns null
+        /// </summary>
+        IMessage Receive(System.TimeSpan timeout);
 
-		/// <summary>
-		/// If a message is available immediately it is returned otherwise this method returns null
-		/// </summary>
-		IMessage ReceiveNoWait();
+        /// <summary>
+        /// Receives the next message if one is immediately available for delivery on the client side
+        /// otherwise this method returns null. It is never an error for this method to return null, the
+        /// time of Message availability varies so your client cannot rely on this method to receive a
+        /// message immediately after one has been sent.
+        /// </summary>
+        IMessage ReceiveNoWait();
 
-		/// <summary>
-		/// An asynchronous listener which can be used to consume messages asynchronously
-		/// </summary>
-		event MessageListener Listener;
+        /// <summary>
+        /// An asynchronous listener which can be used to consume messages asynchronously
+        /// </summary>
+        event MessageListener Listener;
 
-		/// <summary>
-		/// Closes the message consumer.
-		/// </summary>
-		/// <remarks>
-		/// Clients should close message consumers them when they are not needed.
-		/// This call blocks until a receive or message listener in progress has completed.
-		/// A blocked message consumer receive call returns null when this message consumer is closed.
-		/// </remarks>
-		void Close();
+        /// <summary>
+        /// Closes the message consumer.
+        /// </summary>
+        /// <remarks>
+        /// Clients should close message consumers them when they are not needed.
+        /// This call blocks until a receive or message listener in progress has completed.
+        /// A blocked message consumer receive call returns null when this message consumer is closed.
+        /// </remarks>
+        void Close();
 
-		/// <summary>
-		/// A Delegate that is called each time a Message is dispatched to allow the client to do
-		/// any necessary transformations on the received message before it is delivered.
-		/// </summary>
-		ConsumerTransformerDelegate ConsumerTransformer { get; set; }
+        /// <summary>
+        /// A Delegate that is called each time a Message is dispatched to allow the client to do
+        /// any necessary transformations on the received message before it is delivered.
+        /// </summary>
+        ConsumerTransformerDelegate ConsumerTransformer { get; set; }
 
-	}
+    }
 }