Index: /OpenSceneGraph/branches/OpenSceneGraph-2.8/src/osgUtil/Optimizer.cpp
===================================================================
--- /OpenSceneGraph/branches/OpenSceneGraph-2.8/src/osgUtil/Optimizer.cpp (revision 9702)
+++ /OpenSceneGraph/branches/OpenSceneGraph-2.8/src/osgUtil/Optimizer.cpp (revision 9903)
@@ -2416,9 +2416,9 @@
 
     // shift the indices of the incoming primitives to account for the pre existing geometry.
-    for(osg::Geometry::PrimitiveSetList::iterator primItr=rhs.getPrimitiveSetList().begin();
-        primItr!=rhs.getPrimitiveSetList().end();
-        ++primItr)
+    osg::Geometry::PrimitiveSetList::iterator primItr;
+    for(primItr=rhs.getPrimitiveSetList().begin(); primItr!=rhs.getPrimitiveSetList().end(); ++primItr)
     {
         osg::PrimitiveSet* primitive = primItr->get();
+        
         switch(primitive->getType())
         {
@@ -2487,10 +2487,10 @@
             break;
         }
-
-        
-    }
-    
-    lhs.getPrimitiveSetList().insert(lhs.getPrimitiveSetList().end(),
-                                     rhs.getPrimitiveSetList().begin(),rhs.getPrimitiveSetList().end());
+    }
+    
+    for(primItr=rhs.getPrimitiveSetList().begin(); primItr!=rhs.getPrimitiveSetList().end(); ++primItr)
+    {
+        lhs.addPrimitiveSet(primItr->get());
+    }
 
     lhs.dirtyBound();
