diff --git a/indra/llrender/llvertexbuffer.h b/indra/llrender/llvertexbuffer.h
index 1893d396381270796de2df21f9c445e85caed56a..6fe6dc507aae647809b2cf8be73e283bc1f4b911 100644
--- a/indra/llrender/llvertexbuffer.h
+++ b/indra/llrender/llvertexbuffer.h
@@ -194,7 +194,7 @@ class LLVertexBuffer : public LLRefCount, public LLTrace::MemTrackable<LLVertexB
 protected:
 	friend class LLRender;
 
-	virtual ~LLVertexBuffer(); // use unref()
+	~LLVertexBuffer() override; // use unref()
 
 	virtual void setupVertexBuffer(U32 data_mask); // pure virtual, called from mapBuffer()
 	void setupVertexArray();
@@ -222,11 +222,11 @@ class LLVertexBuffer : public LLRefCount, public LLTrace::MemTrackable<LLVertexB
 	volatile U8*		mapIndexBuffer(S32 index, S32 count, bool map_range);
 
 	// set for rendering
-	virtual void	setBuffer(U32 data_mask); 	// calls  setupVertexBuffer() if data_mask is not 0
+	void setBuffer(U32 data_mask); 	// calls  setupVertexBuffer() if data_mask is not 0
 	void flush(); //flush pending data to GL memory
 	// allocate buffer
-	bool	allocateBuffer(S32 nverts, S32 nindices, bool create);
-	virtual bool resizeBuffer(S32 newnverts, S32 newnindices);
+	bool allocateBuffer(S32 nverts, S32 nindices, bool create);
+	bool resizeBuffer(S32 newnverts, S32 newnindices);
 			
 	// Only call each getVertexPointer, etc, once before calling unmapBuffer()
 	// call unmapBuffer() after calls to getXXXStrider() before any cals to setBuffer()
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index 362b873348d5e3387fc0bab4ce2b5154ed0b44c9..2cfcac652ca6da73ab516cf9932261e52d7c4d77 100644
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -2507,12 +2507,3 @@ void LLDrawPoolAvatar::removeRiggedFace(LLFace* facep)
 		}
 	}
 }
-
-LLVertexBufferAvatar::LLVertexBufferAvatar()
-: LLVertexBuffer(sDataMask, 
-	GL_STREAM_DRAW) //avatars are always stream draw due to morph targets
-{
-
-}
-
-
diff --git a/indra/newview/lldrawpoolavatar.h b/indra/newview/lldrawpoolavatar.h
index a95684624274909f7ed5ba1e49613048a998b771..32f239721db087dd0fbef2c72d451f9fbe470f28 100644
--- a/indra/newview/lldrawpoolavatar.h
+++ b/indra/newview/lldrawpoolavatar.h
@@ -292,12 +292,6 @@ typedef enum
 	static LLGLSLShader* sVertexProgram;
 };
 
-class LLVertexBufferAvatar : public LLVertexBuffer
-{
-public:
-	LLVertexBufferAvatar();
-};
-
 extern S32 AVATAR_OFFSET_POS;
 extern S32 AVATAR_OFFSET_NORMAL;
 extern S32 AVATAR_OFFSET_TEX0;
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 649de4a9fa46b4ba3f24f316deab89367b7cc0ab..5f5e7c7a03ca874cfc485752b407036b1799505f 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -2300,7 +2300,7 @@ void LLVOAvatar::updateMeshData()
 			LLVertexBuffer* buff = facep->getVertexBuffer();
 			if(!facep->getVertexBuffer())
 			{
-				buff = new LLVertexBufferAvatar();
+				buff = new LLVertexBuffer(LLDrawPoolAvatar::VERTEX_DATA_MASK, GL_STREAM_DRAW);
 				if (!buff->allocateBuffer(num_vertices, num_indices, TRUE))
 				{
 					LL_WARNS() << "Failed to allocate Vertex Buffer for Mesh to "