Index: /OpenSceneGraph/trunk/examples/osgshaderterrain/osgshaderterrain.cpp
===================================================================
--- /OpenSceneGraph/trunk/examples/osgshaderterrain/osgshaderterrain.cpp (revision 7498)
+++ /OpenSceneGraph/trunk/examples/osgshaderterrain/osgshaderterrain.cpp (revision 8998)
@@ -40,5 +40,4 @@
 #include <osgDB/FileUtils>
 
-#include <osgUtil/IntersectVisitor>
 #include <osgUtil/SmoothingVisitor>
 
Index: /OpenSceneGraph/trunk/examples/osgparticleeffects/osgparticleeffects.cpp
===================================================================
--- /OpenSceneGraph/trunk/examples/osgparticleeffects/osgparticleeffects.cpp (revision 7964)
+++ /OpenSceneGraph/trunk/examples/osgparticleeffects/osgparticleeffects.cpp (revision 8998)
@@ -29,5 +29,4 @@
 
 #include <osgUtil/Optimizer>
-#include <osgUtil/IntersectVisitor>
 
 #include <osgDB/ReadFile>
@@ -134,24 +133,18 @@
 osg::Vec3 computeTerrainIntersection(osg::Node* subgraph,float x,float y)
 {
-    osgUtil::IntersectVisitor iv;
-    osg::ref_ptr<osg::LineSegment> segDown = new osg::LineSegment;
-
     const osg::BoundingSphere& bs = subgraph->getBound();
     float zMax = bs.center().z()+bs.radius();
     float zMin = bs.center().z()-bs.radius();
     
-    segDown->set(osg::Vec3(x,y,zMin),osg::Vec3(x,y,zMax));
-    iv.addLineSegment(segDown.get());
+    osg::ref_ptr<osgUtil::LineSegmentIntersector> intersector = 
+        new osgUtil::LineSegmentIntersector(osg::Vec3(x,y,zMin),osg::Vec3(x,y,zMax));
+
+    osgUtil::IntersectionVisitor iv(intersector.get());
 
     subgraph->accept(iv);
 
-    if (iv.hits())
-    {
-        osgUtil::IntersectVisitor::HitList& hitList = iv.getHitList(segDown.get());
-        if (!hitList.empty())
-        {
-            osg::Vec3 ip = hitList.front().getWorldIntersectPoint();
-            return  ip;
-        }
+    if (intersector->containsIntersections())
+    {
+        return intersector->getFirstIntersection().getWorldIntersectPoint();
     }
 
Index: /OpenSceneGraph/trunk/examples/osgspheresegment/osgspheresegment.cpp
===================================================================
--- /OpenSceneGraph/trunk/examples/osgspheresegment/osgspheresegment.cpp (revision 7648)
+++ /OpenSceneGraph/trunk/examples/osgspheresegment/osgspheresegment.cpp (revision 8998)
@@ -28,5 +28,4 @@
 
 #include <osgUtil/SmoothingVisitor>
-#include <osgUtil/IntersectVisitor>
 
 #include <osgDB/ReadFile>
@@ -318,24 +317,18 @@
 osg::Vec3 computeTerrainIntersection(osg::Node* subgraph,float x,float y)
 {
-    osgUtil::IntersectVisitor iv;
-    osg::ref_ptr<osg::LineSegment> segDown = new osg::LineSegment;
-
     const osg::BoundingSphere& bs = subgraph->getBound();
     float zMax = bs.center().z()+bs.radius();
     float zMin = bs.center().z()-bs.radius();
     
-    segDown->set(osg::Vec3(x,y,zMin),osg::Vec3(x,y,zMax));
-    iv.addLineSegment(segDown.get());
+    osg::ref_ptr<osgUtil::LineSegmentIntersector> intersector = 
+        new osgUtil::LineSegmentIntersector(osg::Vec3(x,y,zMin),osg::Vec3(x,y,zMax));
+
+    osgUtil::IntersectionVisitor iv(intersector.get());
 
     subgraph->accept(iv);
 
-    if (iv.hits())
-    {
-        osgUtil::IntersectVisitor::HitList& hitList = iv.getHitList(segDown.get());
-        if (!hitList.empty())
-        {
-            osg::Vec3 ip = hitList.front().getWorldIntersectPoint();
-            return  ip;
-        }
+    if (intersector->containsIntersections())
+    {
+        return intersector->getFirstIntersection().getWorldIntersectPoint();
     }
 
Index: /OpenSceneGraph/trunk/examples/osgforest/osgforest.cpp
===================================================================
--- /OpenSceneGraph/trunk/examples/osgforest/osgforest.cpp (revision 7929)
+++ /OpenSceneGraph/trunk/examples/osgforest/osgforest.cpp (revision 8998)
@@ -37,5 +37,6 @@
 #include <osgDB/FileUtils>
 
-#include <osgUtil/IntersectVisitor>
+#include <osgUtil/LineSegmentIntersector>
+#include <osgUtil/IntersectionVisitor>
 #include <osgUtil/SmoothingVisitor>
 
@@ -509,20 +510,20 @@
         if (terrain)
         {
-            osgUtil::IntersectVisitor iv;
-            osg::ref_ptr<osg::LineSegment> segDown = new osg::LineSegment;
-
-            segDown->set(tree->_position,tree->_position+osg::Vec3(0.0f,0.0f,size.z()));
-            iv.addLineSegment(segDown.get());
+            osg::ref_ptr<osgUtil::LineSegmentIntersector> intersector = 
+                new osgUtil::LineSegmentIntersector(tree->_position,tree->_position+osg::Vec3(0.0f,0.0f,size.z()));
+
+            osgUtil::IntersectionVisitor iv(intersector.get());
             
             terrain->accept(iv);
 
-            if (iv.hits())
+            if (intersector->containsIntersections())
             {
-                osgUtil::IntersectVisitor::HitList& hitList = iv.getHitList(segDown.get());
-                if (!hitList.empty())
+                osgUtil::LineSegmentIntersector::Intersections& intersections = intersector->getIntersections();
+                for(osgUtil::LineSegmentIntersector::Intersections::iterator itr = intersections.begin();
+                    itr != intersections.end();
+                    ++itr)
                 {
-                    osg::Vec3 ip = hitList.front().getWorldIntersectPoint();
-                    osg::Vec3 np = hitList.front().getWorldIntersectNormal();
-                    tree->_position = ip;
+                    const osgUtil::LineSegmentIntersector::Intersection& intersection = *itr;
+                    tree->_position = intersection.getWorldIntersectPoint();
                 }
             }
Index: /OpenSceneGraph/trunk/examples/osgoccluder/osgoccluder.cpp
===================================================================
--- /OpenSceneGraph/trunk/examples/osgoccluder/osgoccluder.cpp (revision 6941)
+++ /OpenSceneGraph/trunk/examples/osgoccluder/osgoccluder.cpp (revision 8998)
@@ -24,5 +24,4 @@
 #include <osg/Group>
 #include <osg/Notify>
-#include <osg/LineSegment>
 #include <osg/io_utils>
 
@@ -36,5 +35,4 @@
 
 #include <osgUtil/Optimizer>
-#include <osgUtil/IntersectVisitor>
 
 #include <osg/OccluderNode>
