diff --git a/OpenMetaverse.StructuredData/StructuredData.cs b/OpenMetaverse.StructuredData/StructuredData.cs
index 5e370ae3..99d84c83 100644
--- a/OpenMetaverse.StructuredData/StructuredData.cs
+++ b/OpenMetaverse.StructuredData/StructuredData.cs
@@ -85,7 +85,7 @@ namespace OpenMetaverse.StructuredData
public virtual string AsString() { return String.Empty; }
public virtual UUID AsUUID() { return UUID.Zero; }
public virtual DateTime AsDate() { return Utils.Epoch; }
- public virtual Uri AsUri() { return new Uri(String.Empty); }
+ public virtual Uri AsUri() { return new Uri("http://null/"); }
public virtual byte[] AsBinary() { return Utils.EmptyBytes; }
public virtual Vector2 AsVector2() { return Vector2.Zero; }
public virtual Vector3 AsVector3() { return Vector3.Zero; }
diff --git a/OpenMetaverse/Types/CircularQueue.cs b/OpenMetaverse/Types/CircularQueue.cs
index fb6bcc01..3c2ac42b 100644
--- a/OpenMetaverse/Types/CircularQueue.cs
+++ b/OpenMetaverse/Types/CircularQueue.cs
@@ -53,15 +53,18 @@ namespace OpenMetaverse
/// Circular queue to copy
public CircularQueue(CircularQueue queue)
{
- capacity = queue.capacity;
- Items = new T[capacity];
- syncRoot = new object();
+ lock (queue.syncRoot)
+ {
+ capacity = queue.capacity;
+ Items = new T[capacity];
+ syncRoot = new object();
- for (int i = 0; i < capacity; i++)
- Items[i] = queue.Items[i];
+ for (int i = 0; i < capacity; i++)
+ Items[i] = queue.Items[i];
- first = queue.first;
- next = queue.next;
+ first = queue.first;
+ next = queue.next;
+ }
}
public void Clear()