Index: src/osgViewer/CompositeViewer.cpp
===================================================================
--- src/osgViewer/CompositeViewer.cpp	(revision 14057)
+++ src/osgViewer/CompositeViewer.cpp	(working copy)
@@ -262,7 +262,9 @@
 
             // if there update callbacks then we need to do frame.
             if (view->getCamera()->getUpdateCallback()) return true;
-            if (view->getSceneData()!=0 && view->getSceneData()->getNumChildrenRequiringUpdateTraversal()>0) return true;
+            if (_runFrameScheme != ViewerBase::ON_DEMAND &&
+                    view->getSceneData()!=0 &&
+                    view->getSceneData()->getNumChildrenRequiringUpdateTraversal()>0) return true;
         }
     }
 
Index: src/osgViewer/Viewer.cpp
===================================================================
--- src/osgViewer/Viewer.cpp	(revision 14057)
+++ src/osgViewer/Viewer.cpp	(working copy)
@@ -367,7 +367,9 @@
 
     // if there update callbacks then we need to do frame.
     if (_camera->getUpdateCallback()) return true;
-    if (getSceneData()!=0 && getSceneData()->getNumChildrenRequiringUpdateTraversal()>0) return true;
+    if (_runFrameScheme != ViewerBase::ON_DEMAND &&
+            getSceneData()!=0 &&
+            getSceneData()->getNumChildrenRequiringUpdateTraversal()>0) return true;
 
     // check if events are available and need processing
     if (checkEvents()) return true;
