diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 7f18140206..36a454eb75 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -1137,8 +1137,10 @@ namespace OpenSim.Region.Framework.Scenes
         /// 
         protected internal void ForEachSOG(Action action)
         {
-            // FIXME: Need to lock here, really.
-            List objlist = new List(SceneObjectGroupsByFullID.Values);
+            List objlist;
+            lock (SceneObjectGroupsByFullID)
+                objlist = new List(SceneObjectGroupsByFullID.Values);
+
             foreach (SceneObjectGroup obj in objlist)
             {
                 try
@@ -1147,7 +1149,7 @@ namespace OpenSim.Region.Framework.Scenes
                 }
                 catch (Exception e)
                 {
-                    // Catch it and move on. This includes situations where splist has inconsistent info
+                    // Catch it and move on. This includes situations where objlist has inconsistent info
                     m_log.WarnFormat(
                         "[SCENEGRAPH]: Problem processing action in ForEachSOG: {0} {1}", e.Message, e.StackTrace);
                 }
@@ -1382,10 +1384,10 @@ namespace OpenSim.Region.Framework.Scenes
         /// 
         /// Update the texture entry of the given prim.
         /// 
-        /// 
+        /// 
         /// A texture entry is an object that contains details of all the textures of the prim's face.  In this case,
         /// the texture is given in its byte serialized form.
-        /// 
+        /// 
         /// 
         /// 
         ///