diff --git a/src/Viewer/fg_os_osgviewer.cxx b/src/Viewer/fg_os_osgviewer.cxx
index ffe10c0e0..9a73847dc 100644
--- a/src/Viewer/fg_os_osgviewer.cxx
+++ b/src/Viewer/fg_os_osgviewer.cxx
@@ -190,6 +190,15 @@ public:
   virtual void notify(osg::NotifySeverity severity, const char *message)
   {
     SG_LOG(SG_GL, translateSeverity(severity), message);
+
+    // Detect whether a osg::Reference derived object is deleted with a non-zero
+    // reference count. In this case trigger a segfault to get a stack trace.
+    if( strstr(message, "the final reference count was") )
+    {
+
+      int* trigger_segfault = 0;
+      *trigger_segfault = 0;
+    }
   }
   
 private: