diff --git a/indra/llcommon/llinstancetracker.h b/indra/llcommon/llinstancetracker.h
index 47041f790f9adef4198a4a745dca6ae1f8b2e004..78a67653c8be091aa26c263befdcf32b9ce37ad9 100644
--- a/indra/llcommon/llinstancetracker.h
+++ b/indra/llcommon/llinstancetracker.h
@@ -56,6 +56,8 @@ class LLInstanceTracker : public LLInstanceTrackerBase
 	class instance_iter : public boost::iterator_facade<instance_iter, T, boost::forward_traversal_tag>
 	{
 	public:
+		typedef boost::iterator_facade<instance_iter, T, boost::forward_traversal_tag> super_t;
+		
 		instance_iter(typename InstanceMap::iterator& it)
 		:	mIterator(it)
 		{
@@ -67,6 +69,13 @@ class LLInstanceTracker : public LLInstanceTrackerBase
 			--sIterationNestDepth;
 		}
 
+		instance_iter& operator =(const instance_iter& other)
+		{
+			mIterator = other.mIterator;
+			++sIterationNestDepth;
+			super_t::operator=(other);
+		}
+
 	private:
 		friend class boost::iterator_core_access;
 
@@ -87,17 +96,33 @@ class LLInstanceTracker : public LLInstanceTrackerBase
 	class key_iter : public boost::iterator_facade<key_iter, KEY, boost::forward_traversal_tag>
 	{
 	public:
+		typedef boost::iterator_facade<key_iter, KEY, boost::forward_traversal_tag> super_t;
+
 		key_iter(typename InstanceMap::iterator& it)
 			:	mIterator(it)
 		{
 			++sIterationNestDepth;
 		}
 
+		key_iter(const key_iter& other)
+			:	mIterator(other.mIterator)
+		{
+			++sIterationNestDepth;
+		}
+
+		key_iter& operator =(const key_iter& other)
+		{
+			mIterator = other.mIterator;
+			++sIterationNestDepth;
+			super_t::operator=(other);
+		}
+
 		~key_iter()
 		{
 			--sIterationNestDepth;
 		}
 
+
 	private:
 		friend class boost::iterator_core_access;