diff --git a/src/main/csharp/Connection.cs b/src/main/csharp/Connection.cs
index 0b32918..b524d1e 100644
--- a/src/main/csharp/Connection.cs
+++ b/src/main/csharp/Connection.cs
@@ -335,6 +335,7 @@
                             // Allocate a Qpid connection
                             if (qpidConnection == null)
                             {
+                                Tracer.DebugFormat("Amqp: create qpid connection to: {0}", this.BrokerUri.ToString());
                                 qpidConnection =
                                     new Org.Apache.Qpid.Messaging.Connection(
                                         brokerUri.ToString(),
@@ -351,6 +352,8 @@
                         }
                         catch (Org.Apache.Qpid.Messaging.QpidException e)
                         {
+                            Tracer.DebugFormat("Amqp: create qpid connection to: {0} failed with {1}", 
+                                this.BrokerUri.ToString(), e.Message);
                             throw new ConnectionClosedException(e.Message);
                         }
                     }
diff --git a/src/main/csharp/ConnectionFactory.cs b/src/main/csharp/ConnectionFactory.cs
index aeb56cd..a623697 100644
--- a/src/main/csharp/ConnectionFactory.cs
+++ b/src/main/csharp/ConnectionFactory.cs
@@ -31,6 +31,9 @@
     ///     * 0..N Strings specifying Qpid connection connectionProperties in the form "name:value".
     ///     * Hashtable containing properties as key/value pairs
     /// 
+    /// Connection URI are defined in
+    /// http://qpid.apache.org/releases/qpid-trunk/programming/book/connections.html#connection-url
+    /// 
     /// Example using property strings:
     /// 
     /// Uri connecturi = new Uri("amqp:localhost:5673")
@@ -42,7 +45,7 @@
     /// 
     /// Example using property table:
     /// 
-    /// Uri connecturi = new Uri("amqp:localhost:5673")
+    /// Uri connecturi = new Uri("amqp:localhost:5672")
     /// Hashtable properties = new Hashtable();
     /// properties.Add("protocol", "amqp1.0");
     /// properties.Add("reconnect_timeout", 60)
@@ -102,6 +105,7 @@
 
         public ConnectionFactory(Uri brokerUri, string clientID, params Object[] propsArray)
         {
+            Tracer.DebugFormat("Amqp: create connection factory for Uri: {0}", brokerUri.ToString()); 
             try
             {
                 this.brokerUri = brokerUri;
@@ -133,6 +137,7 @@
 
         public ConnectionFactory(Uri brokerUri, string clientID, Hashtable propsTable)
         {
+            Tracer.DebugFormat("Amqp: create connection factory for Uri: {0}", brokerUri.ToString());
             try
             {
                 this.brokerUri = brokerUri;
