diff --git a/indra/newview/llvieweroctree.h b/indra/newview/llvieweroctree.h
index 6ebd1d6da11638b19090b21b99a3e680804f71a6..174af5e22f59f60f3676183f1e8f3d664632840a 100644
--- a/indra/newview/llvieweroctree.h
+++ b/indra/newview/llvieweroctree.h
@@ -83,7 +83,9 @@ class LLViewerOctreeEntry : public LLRefCount
 		NUM_DATA_TYPE
 	}eEntryDataType_t;
 
-	~LLViewerOctreeEntry();
+protected:
+	virtual ~LLViewerOctreeEntry();
+
 public:
 	LLViewerOctreeEntry();
 	
@@ -187,7 +189,7 @@ class LLviewerOctreeGroup : public LLOctreeListener<LLViewerOctreeEntry>
 {
 	friend class LLViewerOctreeCull;
 protected:
-	~LLviewerOctreeGroup();
+	virtual ~LLviewerOctreeGroup();
 
 public:	
 	enum
@@ -303,13 +305,15 @@ class LLOcclusionCullingGroup : public LLviewerOctreeGroup
 		STATE_MODE_ALL_CAMERAS,		//used for occlusion state, set state for all cameras
 	} eSetStateMode;
 
+protected:
+	virtual ~LLOcclusionCullingGroup();
+
 public:
 	LLOcclusionCullingGroup(OctreeNode* node, LLViewerOctreePartition* part);
 	LLOcclusionCullingGroup(const LLOcclusionCullingGroup& rhs) : LLviewerOctreeGroup(rhs)
 	{
 		*this = rhs;
-	}
-	~LLOcclusionCullingGroup();
+	}	
 
 	void setOcclusionState(U32 state, S32 mode = STATE_MODE_SINGLE);
 	void clearOcclusionState(U32 state, S32 mode = STATE_MODE_SINGLE);