diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp
index 46e7d064077f80f8f83b817378ce2f97ce1e5894..12a8443d7fe6e7229611ca7a50437251c831b0e0 100644
--- a/indra/llrender/llrender.cpp
+++ b/indra/llrender/llrender.cpp
@@ -1082,7 +1082,6 @@ void LLLightState::setSpotDirection(const LLVector3& direction)
 LLRender::LLRender()
   : mDirty(false),
     mCount(0),
-	mQuadCycle(0),
     mMode(LLRender::TRIANGLES),
     mCurrTextureUnitIndex(0),
     mLineWidth(1.f),
@@ -1927,13 +1926,7 @@ void LLRender::begin(const GLuint& mode)
 {
 	if (mode != mMode)
 	{
-		if (mode == LLRender::QUADS)
-		{
-			mQuadCycle = 1;
-		}
-
-		if (mMode == LLRender::QUADS ||
-			mMode == LLRender::LINES ||
+		if (mMode == LLRender::LINES ||
 			mMode == LLRender::TRIANGLES ||
 			mMode == LLRender::POINTS ||
 			mMode == LLRender::TRIANGLE_STRIP )
@@ -1957,8 +1950,7 @@ void LLRender::end()
 		//IMM_ERRS << "GL begin and end called with no vertices specified." << LL_ENDL;
 	}
 
-	if ((mMode != LLRender::QUADS && 
-		mMode != LLRender::LINES &&
+	if ((mMode != LLRender::LINES &&
 		mMode != LLRender::TRIANGLES &&
 		mMode != LLRender::POINTS &&
 		mMode != LLRender::TRIANGLE_STRIP) ||
@@ -1985,15 +1977,6 @@ void LLRender::flush()
 		//store mCount in a local variable to avoid re-entrance (drawArrays may call flush)
 		U32 count = mCount;
 
-			if (mMode == LLRender::QUADS && !sGLCoreProfile)
-			{
-				if (mCount%4 != 0)
-				{
-				count -= (mCount % 4);
-				LL_WARNS() << "Incomplete quad requested." << LL_ENDL;
-				}
-			}
-			
 			if (mMode == LLRender::TRIANGLES)
 			{
 				if (mCount%3 != 0)
@@ -2023,16 +2006,7 @@ void LLRender::flush()
 		
 		mBuffer->flush();
 		mBuffer->setBuffer(immediate_mask);
-
-		if (mMode == LLRender::QUADS && sGLCoreProfile)
-		{
-			mBuffer->drawArrays(LLRender::TRIANGLES, 0, count);
-			mQuadCycle = 1;
-		}
-		else
-		{
-			mBuffer->drawArrays(mMode, 0, count);
-		}
+		mBuffer->drawArrays(mMode, 0, count);
 		
 		mVerticesp[0] = mVerticesp[count];
 		mTexcoordsp[0] = mTexcoordsp[count];
@@ -2052,7 +2026,6 @@ void LLRender::vertex4a(const LLVector4a& vertex)
 		{
 			case LLRender::POINTS: flush(); break;
 			case LLRender::TRIANGLES: if (mCount%3==0) flush(); break;
-			case LLRender::QUADS: if(mCount%4 == 0) flush(); break; 
 			case LLRender::LINES: if (mCount%2 == 0) flush(); break;
 			case LLRender::TRIANGLE_STRIP:
 			{
@@ -2100,25 +2073,6 @@ void LLRender::vertex4a(const LLVector4a& vertex)
 		mVerticesp[mCount].mul(mUIScale.back());
 	}
 
-	if (mMode == LLRender::QUADS && LLRender::sGLCoreProfile)
-	{
-		mQuadCycle++;
-		if (mQuadCycle == 4)
-		{ //copy two vertices so fourth quad element will add a triangle
-			mQuadCycle = 0;
-	
-			mCount++;
-			mVerticesp[mCount] = mVerticesp[mCount-3];
-			mColorsp[mCount] = mColorsp[mCount-3];
-			mTexcoordsp[mCount] = mTexcoordsp[mCount-3];
-
-			mCount++;
-			mVerticesp[mCount] = mVerticesp[mCount-2];
-			mColorsp[mCount] = mColorsp[mCount-2];
-			mTexcoordsp[mCount] = mTexcoordsp[mCount-2];
-		}
-	}
-
 	mCount++;
 	mVerticesp[mCount] = mVerticesp[mCount-1];
 	mColorsp[mCount] = mColorsp[mCount-1];
@@ -2143,41 +2097,6 @@ void LLRender::vertexBatchPreTransformed(LLVector4a* verts, S32 vert_count)
 		return;
 	}
 
-	if (sGLCoreProfile && mMode == LLRender::QUADS)
-	{ //quads are deprecated, convert to triangle list
-		S32 i = 0;
-		
-		while (i < vert_count)
-		{
-			//read first three
-			mVerticesp[mCount++] = verts[i++];
-			mTexcoordsp[mCount] = mTexcoordsp[mCount-1];
-			mColorsp[mCount] = mColorsp[mCount-1];
-
-			mVerticesp[mCount++] = verts[i++];
-			mTexcoordsp[mCount] = mTexcoordsp[mCount-1];
-			mColorsp[mCount] = mColorsp[mCount-1];
-
-			mVerticesp[mCount++] = verts[i++];
-			mTexcoordsp[mCount] = mTexcoordsp[mCount-1];
-			mColorsp[mCount] = mColorsp[mCount-1];
-
-			//copy two
-			mVerticesp[mCount++] = verts[i-3];
-			mTexcoordsp[mCount] = mTexcoordsp[mCount-1];
-			mColorsp[mCount] = mColorsp[mCount-1];
-
-			mVerticesp[mCount++] = verts[i-1];
-			mTexcoordsp[mCount] = mTexcoordsp[mCount-1];
-			mColorsp[mCount] = mColorsp[mCount-1];
-			
-			//copy last one
-			mVerticesp[mCount++] = verts[i++];
-			mTexcoordsp[mCount] = mTexcoordsp[mCount-1];
-			mColorsp[mCount] = mColorsp[mCount-1];
-		}
-	}
-	else
 	{
 		if (mPrimitiveReset && mCount)
 		{
@@ -2217,41 +2136,6 @@ void LLRender::vertexBatchPreTransformed(LLVector4a* verts, LLVector2* uvs, S32
 		return;
 	}
 
-	if (sGLCoreProfile && mMode == LLRender::QUADS)
-	{ //quads are deprecated, convert to triangle list
-		S32 i = 0;
-
-		while (i < vert_count)
-		{
-			//read first three
-			mVerticesp[mCount] = verts[i];
-			mTexcoordsp[mCount++] = uvs[i++];
-			mColorsp[mCount] = mColorsp[mCount-1];
-
-			mVerticesp[mCount] = verts[i];
-			mTexcoordsp[mCount++] = uvs[i++];
-			mColorsp[mCount] = mColorsp[mCount-1];
-
-			mVerticesp[mCount] = verts[i];
-			mTexcoordsp[mCount++] = uvs[i++];
-			mColorsp[mCount] = mColorsp[mCount-1];
-
-			//copy last two
-			mVerticesp[mCount] = verts[i-3];
-			mTexcoordsp[mCount++] = uvs[i-3];
-			mColorsp[mCount] = mColorsp[mCount-1];
-
-			mVerticesp[mCount] = verts[i-1];
-			mTexcoordsp[mCount++] = uvs[i-1];
-			mColorsp[mCount] = mColorsp[mCount-1];
-
-			//copy last one
-			mVerticesp[mCount] = verts[i];
-			mTexcoordsp[mCount++] = uvs[i++];
-			mColorsp[mCount] = mColorsp[mCount-1];
-		}
-	}
-	else
 	{
 		if (mPrimitiveReset && mCount)
 		{
@@ -2295,42 +2179,6 @@ void LLRender::vertexBatchPreTransformed(LLVector4a* verts, LLVector2* uvs, LLCo
 		return;
 	}
 
-	
-	if (sGLCoreProfile && mMode == LLRender::QUADS)
-	{ //quads are deprecated, convert to triangle list
-		S32 i = 0;
-
-		while (i < vert_count)
-		{
-			//read first three
-			mVerticesp[mCount] = verts[i];
-			mTexcoordsp[mCount] = uvs[i];
-			mColorsp[mCount++] = colors[i++];
-
-			mVerticesp[mCount] = verts[i];
-			mTexcoordsp[mCount] = uvs[i];
-			mColorsp[mCount++] = colors[i++];
-
-			mVerticesp[mCount] = verts[i];
-			mTexcoordsp[mCount] = uvs[i];
-			mColorsp[mCount++] = colors[i++];
-
-			//copy last two
-			mVerticesp[mCount] = verts[i-3];
-			mTexcoordsp[mCount] = uvs[i-3];
-			mColorsp[mCount++] = colors[i-3];
-
-			mVerticesp[mCount] = verts[i-1];
-			mTexcoordsp[mCount] = uvs[i-1];
-			mColorsp[mCount++] = colors[i-1];
-
-			//copy last one
-			mVerticesp[mCount] = verts[i];
-			mTexcoordsp[mCount] = uvs[i];
-			mColorsp[mCount++] = colors[i++];
-		}
-	}
-	else
 	{
 		if (mPrimitiveReset && mCount)
 		{
diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h
index 7e438d644bfbe14cf287c18602abc7827140aeb9..f49dbe66e17c3c3a59aab8ee2012c3182a28884d 100644
--- a/indra/llrender/llrender.h
+++ b/indra/llrender/llrender.h
@@ -304,7 +304,6 @@ class LLRender
 		POINTS,
 		LINES,
 		LINE_STRIP,
-		QUADS,
 		LINE_LOOP,
 		NUM_MODES
 	} eGeomModes;
@@ -496,7 +495,6 @@ class LLRender
 	LLColor4 mAmbientLightColor;
 	
 	bool			mDirty;
-	U32				mQuadCycle;
 	U32				mCount;
 	U32				mMode;
 	U32				mCurrTextureUnitIndex;
diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp
index 33ad594731ca812af36769570c7f0b74d1cb3382..6322eb27152de4d88a5e9299fd5baceacb53a0e3 100644
--- a/indra/llrender/llvertexbuffer.cpp
+++ b/indra/llrender/llvertexbuffer.cpp
@@ -498,7 +498,6 @@ const U32 LLVertexBuffer::sGLMode[LLRender::NUM_MODES] =
 	GL_POINTS,
 	GL_LINES,
 	GL_LINE_STRIP,
-	GL_QUADS,
 	GL_LINE_LOOP,
 };
 
diff --git a/indra/llui/llbadge.cpp b/indra/llui/llbadge.cpp
index 170407cd28036e977728f6e839c5c2a9663c8d77..4a363abf9b7fd8de38c25669bf46b14d6cbd4507 100644
--- a/indra/llui/llbadge.cpp
+++ b/indra/llui/llbadge.cpp
@@ -202,15 +202,17 @@ void renderBadgeBackground(F32 centerX, F32 centerY, F32 width, F32 height, cons
 						ll_round(x) + width,
 						ll_round(y) + height);
 	
-	LLVector4a vertices[4];
-	vertices[0].set(screen_rect.mRight, screen_rect.mTop,    1.0f);
-	vertices[1].set(screen_rect.mLeft,  screen_rect.mTop,    1.0f);
-	vertices[2].set(screen_rect.mLeft,  screen_rect.mBottom, 1.0f);
-	vertices[3].set(screen_rect.mRight, screen_rect.mBottom, 1.0f);
+	LLVector4a vertices[6];
+	vertices[0].set(screen_rect.mLeft, screen_rect.mTop, 1.0f);
+	vertices[1].set(screen_rect.mLeft, screen_rect.mBottom, 1.0f);
+	vertices[2].set(screen_rect.mRight, screen_rect.mTop, 1.0f);
+	vertices[3].set(screen_rect.mRight, screen_rect.mTop, 1.0f);
+	vertices[4].set(screen_rect.mLeft, screen_rect.mBottom, 1.0f);
+	vertices[5].set(screen_rect.mRight, screen_rect.mBottom, 1.0f);
 	
-	gGL.begin(LLRender::QUADS);
+	gGL.begin(LLRender::TRIANGLES);
 	{
-		gGL.vertexBatchPreTransformed(vertices, 4);
+		gGL.vertexBatchPreTransformed(vertices, 6);
 	}
 	gGL.end();
 	gGL.setSceneBlendType(LLRender::BT_ALPHA);
@@ -361,7 +363,7 @@ void LLBadge::draw()
 							mLabelColor % alpha,
 							LLFontGL::HCENTER, LLFontGL::VCENTER, // centered around the position
 							LLFontGL::NORMAL, // normal text (not bold, italics, etc.)
-							LLFontGL::DROP_SHADOW_SOFT,
+							LLFontGL::DROP_SHADOW,
 							badge_char_length, badge_pixel_length,
 							right_position_out, do_not_use_ellipses);
 		}
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 3ad195db96afacd644f0499b1aeb638d20e9b18c..6c8010518d97af2774ca3a3c2a7bbba086da1bed 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -2184,36 +2184,28 @@ void LLFloater::drawConeToOwner(F32 &context_cone_opacity,
 
         gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
         LLGLEnable(GL_CULL_FACE);
-        gGL.begin(LLRender::QUADS);
+        gGL.begin(LLRender::TRIANGLE_STRIP);
         {
             gGL.color4f(0.f, 0.f, 0.f, contex_cone_in_alpha * context_cone_opacity);
             gGL.vertex2i(owner_rect.mLeft, owner_rect.mTop);
-            gGL.vertex2i(owner_rect.mRight, owner_rect.mTop);
-            gGL.color4f(0.f, 0.f, 0.f, contex_cone_out_alpha * context_cone_opacity);
-            gGL.vertex2i(local_rect.mRight, local_rect.mTop);
-            gGL.vertex2i(local_rect.mLeft, local_rect.mTop);
-
             gGL.color4f(0.f, 0.f, 0.f, contex_cone_out_alpha * context_cone_opacity);
             gGL.vertex2i(local_rect.mLeft, local_rect.mTop);
-            gGL.vertex2i(local_rect.mLeft, local_rect.mBottom);
             gGL.color4f(0.f, 0.f, 0.f, contex_cone_in_alpha * context_cone_opacity);
-            gGL.vertex2i(owner_rect.mLeft, owner_rect.mBottom);
-            gGL.vertex2i(owner_rect.mLeft, owner_rect.mTop);
-
+            gGL.vertex2i(owner_rect.mRight, owner_rect.mTop);
             gGL.color4f(0.f, 0.f, 0.f, contex_cone_out_alpha * context_cone_opacity);
-            gGL.vertex2i(local_rect.mRight, local_rect.mBottom);
             gGL.vertex2i(local_rect.mRight, local_rect.mTop);
             gGL.color4f(0.f, 0.f, 0.f, contex_cone_in_alpha * context_cone_opacity);
-            gGL.vertex2i(owner_rect.mRight, owner_rect.mTop);
             gGL.vertex2i(owner_rect.mRight, owner_rect.mBottom);
-
-
             gGL.color4f(0.f, 0.f, 0.f, contex_cone_out_alpha * context_cone_opacity);
-            gGL.vertex2i(local_rect.mLeft, local_rect.mBottom);
             gGL.vertex2i(local_rect.mRight, local_rect.mBottom);
             gGL.color4f(0.f, 0.f, 0.f, contex_cone_in_alpha * context_cone_opacity);
-            gGL.vertex2i(owner_rect.mRight, owner_rect.mBottom);
             gGL.vertex2i(owner_rect.mLeft, owner_rect.mBottom);
+            gGL.color4f(0.f, 0.f, 0.f, contex_cone_out_alpha * context_cone_opacity);
+            gGL.vertex2i(local_rect.mLeft, local_rect.mBottom);
+            gGL.color4f(0.f, 0.f, 0.f, contex_cone_in_alpha * context_cone_opacity);
+            gGL.vertex2i(owner_rect.mLeft, owner_rect.mTop);
+            gGL.color4f(0.f, 0.f, 0.f, contex_cone_out_alpha * context_cone_opacity);
+            gGL.vertex2i(local_rect.mLeft, local_rect.mTop);
         }
         gGL.end();
     }
diff --git a/indra/llui/llstatbar.cpp b/indra/llui/llstatbar.cpp
index 24d0602e0091422a7079312c49819cb449690813..41a4902699915ee2388a1a23f2c9233861584cba 100644
--- a/indra/llui/llstatbar.cpp
+++ b/indra/llui/llstatbar.cpp
@@ -462,7 +462,7 @@ void LLStatBar::draw()
 					max_value = 0.f;
 
 				gGL.color4f(1.f, 0.f, 0.f, 1.f);
-				gGL.begin( LLRender::QUADS );
+				gGL.begin( LLRender::TRIANGLES );
 				const S32 max_frame = llmin(num_frames, num_values);
 				U32 num_samples = 0;
 				for (S32 i = 1; i <= max_frame; i++)
@@ -502,17 +502,22 @@ void LLStatBar::draw()
 					F32 max = llmax(min + 1, (max_value - mCurMinBar) * value_scale);
 					if (mOrientation == HORIZONTAL)
 					{
+						gGL.vertex2f((F32)bar_rect.mRight - offset - 1, max);
+						gGL.vertex2f((F32)bar_rect.mRight - offset - 1, min);
+						gGL.vertex2f((F32)bar_rect.mRight - offset, max);
 						gGL.vertex2f((F32)bar_rect.mRight - offset, max);
-						gGL.vertex2f((F32)bar_rect.mRight - offset, min);
 						gGL.vertex2f((F32)bar_rect.mRight - offset - 1, min);
-						gGL.vertex2f((F32)bar_rect.mRight - offset - 1, max);
+						gGL.vertex2f((F32)bar_rect.mRight - offset, min);
 					}
 					else
 					{
 						gGL.vertex2f(min, (F32)bar_rect.mBottom + offset + 1);
 						gGL.vertex2f(min, (F32)bar_rect.mBottom + offset);
+						gGL.vertex2f(max, (F32)bar_rect.mBottom + offset + 1);
+						gGL.vertex2f(max, (F32)bar_rect.mBottom + offset + 1);
+						gGL.vertex2f(min, (F32)bar_rect.mBottom + offset);
 						gGL.vertex2f(max, (F32)bar_rect.mBottom + offset);
-						gGL.vertex2f(max, (F32)bar_rect.mBottom + offset + 1 );
+						
 					}
 				}
 				gGL.end();
diff --git a/indra/newview/llbox.cpp b/indra/newview/llbox.cpp
index faf82695fe328427cb7695d264b5c0499e72f0fa..d15de908d352948836f9bc6c33aff66f423aa2d5 100644
--- a/indra/newview/llbox.cpp
+++ b/indra/newview/llbox.cpp
@@ -76,16 +76,16 @@ void LLBox::renderface(S32 which_face)
 		{7, 4, 0, 3}
 	};
 
-	gGL.begin(LLRender::QUADS);
+	gGL.begin(LLRender::TRIANGLE_STRIP);
 		//gGL.normal3fv(&normals[which_face][0]);
-		gGL.texCoord2f(1,0);
-		gGL.vertex3fv(&mVertex[ faces[which_face][0] ][0]);
-		gGL.texCoord2f(1,1);
-		gGL.vertex3fv(&mVertex[ faces[which_face][1] ][0]);
 		gGL.texCoord2f(0,1);
-		gGL.vertex3fv(&mVertex[ faces[which_face][2] ][0]);
+		gGL.vertex3fv(&mVertex[ faces[which_face][2]][0]);
 		gGL.texCoord2f(0,0);
-		gGL.vertex3fv(&mVertex[ faces[which_face][3] ][0]);
+		gGL.vertex3fv(&mVertex[ faces[which_face][3]][0]);
+		gGL.texCoord2f(1, 1);
+		gGL.vertex3fv(&mVertex[faces[which_face][1]][0]);
+		gGL.texCoord2f(1, 0);
+		gGL.vertex3fv(&mVertex[faces[which_face][0]][0]);
 	gGL.end();
 }
 
diff --git a/indra/newview/llfloaterbvhpreview.cpp b/indra/newview/llfloaterbvhpreview.cpp
index 0992eb6cd3ab032274116fe85ffe0523093db21d..e5674f96c0a0c1f8bd616c3b5c18a3ea9657effc 100644
--- a/indra/newview/llfloaterbvhpreview.cpp
+++ b/indra/newview/llfloaterbvhpreview.cpp
@@ -401,16 +401,16 @@ void LLFloaterBvhPreview::draw()
 
 		gGL.getTexUnit(0)->bind(mAnimPreview);
 
-		gGL.begin( LLRender::QUADS );
+		gGL.begin( LLRender::TRIANGLE_STRIP );
 		{
 			gGL.texCoord2f(0.f, 1.f);
 			gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
 			gGL.texCoord2f(0.f, 0.f);
 			gGL.vertex2i(PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
-			gGL.texCoord2f(1.f, 0.f);
-			gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
 			gGL.texCoord2f(1.f, 1.f);
 			gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
+			gGL.texCoord2f(1.f, 0.f);
+			gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
 		}
 		gGL.end();
 
diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp
index 02620b74a18ed381417a79f2e346e9d382166d81..6b2926cfcc0df8660ae749a69d41ad4ba521c385 100644
--- a/indra/newview/llfloaterimagepreview.cpp
+++ b/indra/newview/llfloaterimagepreview.cpp
@@ -276,16 +276,16 @@ void LLFloaterImagePreview::draw()
 			}
 
 			gGL.color3f(1.f, 1.f, 1.f);
-			gGL.begin( LLRender::QUADS );
+			gGL.begin( LLRender::TRIANGLE_STRIP );
 			{
 				gGL.texCoord2f(mPreviewImageRect.mLeft, mPreviewImageRect.mTop);
 				gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
 				gGL.texCoord2f(mPreviewImageRect.mLeft, mPreviewImageRect.mBottom);
 				gGL.vertex2i(PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
-				gGL.texCoord2f(mPreviewImageRect.mRight, mPreviewImageRect.mBottom);
-				gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
 				gGL.texCoord2f(mPreviewImageRect.mRight, mPreviewImageRect.mTop);
 				gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
+				gGL.texCoord2f(mPreviewImageRect.mRight, mPreviewImageRect.mBottom);
+				gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
 			}
 			gGL.end();
 
@@ -308,16 +308,16 @@ void LLFloaterImagePreview::draw()
 					gGL.getTexUnit(0)->bind(mAvatarPreview);
 				}
 
-				gGL.begin( LLRender::QUADS );
+				gGL.begin( LLRender::TRIANGLE_STRIP );
 				{
 					gGL.texCoord2f(0.f, 1.f);
 					gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
 					gGL.texCoord2f(0.f, 0.f);
 					gGL.vertex2i(PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
-					gGL.texCoord2f(1.f, 0.f);
-					gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
 					gGL.texCoord2f(1.f, 1.f);
 					gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
+					gGL.texCoord2f(1.f, 0.f);
+					gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
 				}
 				gGL.end();
 
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index 28156fcb750dbe42b7c843bac3da55958485b2da..b310034db6c077e8ea504a02dc764cbbf8f8c29c 100644
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -744,7 +744,7 @@ void LLFloaterModelPreview::draw3dPreview()
 
 	gGL.getTexUnit(0)->bind(mModelPreview);
 
-	gGL.begin( LLRender::QUADS );
+	gGL.begin(LLRender::TRIANGLES);
 	{
 		gGL.texCoord2f(0.f, 1.f);
 		gGL.vertex2i(mPreviewRect.mLeft+1, mPreviewRect.mTop-1);
@@ -752,8 +752,12 @@ void LLFloaterModelPreview::draw3dPreview()
 		gGL.vertex2i(mPreviewRect.mLeft+1, mPreviewRect.mBottom+1);
 		gGL.texCoord2f(1.f, 0.f);
 		gGL.vertex2i(mPreviewRect.mRight-1, mPreviewRect.mBottom+1);
+		gGL.texCoord2f(1.f, 0.f);
+		gGL.vertex2i(mPreviewRect.mRight - 1, mPreviewRect.mBottom + 1);
 		gGL.texCoord2f(1.f, 1.f);
 		gGL.vertex2i(mPreviewRect.mRight-1, mPreviewRect.mTop-1);
+		gGL.texCoord2f(0.f, 1.f);
+		gGL.vertex2i(mPreviewRect.mLeft + 1, mPreviewRect.mTop - 1);
 	}
 	gGL.end();
 
diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp
index 138991258fa1a6160b15f51ab302eafa51047d58..917ebd5a7f96f964b90c838e33391b899220d155 100644
--- a/indra/newview/llglsandbox.cpp
+++ b/indra/newview/llglsandbox.cpp
@@ -385,25 +385,16 @@ void LLViewerParcelMgr::renderRect(const LLVector3d &west_south_bottom_global,
 	gGL.end();
 
 	gGL.color4f(1.f, 1.f, 0.f, 0.2f);
-	gGL.begin(LLRender::QUADS);
+	gGL.begin(LLRender::TRIANGLE_STRIP);
 
-	gGL.vertex3f(west, north, nw_bottom);
 	gGL.vertex3f(west, north, nw_top);
+	gGL.vertex3f(west, north, nw_bottom);
 	gGL.vertex3f(east, north, ne_top);
 	gGL.vertex3f(east, north, ne_bottom);
-
-	gGL.vertex3f(east, north, ne_bottom);
-	gGL.vertex3f(east, north, ne_top);
 	gGL.vertex3f(east, south, se_top);
 	gGL.vertex3f(east, south, se_bottom);
-
-	gGL.vertex3f(east, south, se_bottom);
-	gGL.vertex3f(east, south, se_top);
 	gGL.vertex3f(west, south, sw_top);
 	gGL.vertex3f(west, south, sw_bottom);
-
-	gGL.vertex3f(west, south, sw_bottom);
-	gGL.vertex3f(west, south, sw_top);
 	gGL.vertex3f(west, north, nw_top);
 	gGL.vertex3f(west, north, nw_bottom);
 
@@ -538,10 +529,11 @@ void LLViewerParcelMgr::renderOneSegment(F32 x1, F32 y1, F32 x2, F32 y2, F32 hei
 
 		gGL.vertex3f(x1, y1, z1);
 
-		gGL.vertex3f(x2, y2, z2);
-
-		z = z2+height;
+		z = z2 + height;
+		gGL.vertex3f(x2, y2, z);
 		gGL.vertex3f(x2, y2, z);
+		gGL.vertex3f(x1, y1, z1);
+		gGL.vertex3f(x2, y2, z2);
 	}
 	else
 	{
@@ -578,11 +570,14 @@ void LLViewerParcelMgr::renderOneSegment(F32 x1, F32 y1, F32 x2, F32 y2, F32 hei
 
 		// top edge stairsteps
 		z = llmax(z2+height, z1+height);
+		gGL.texCoord2f(tex_coord1*0.5f + 0.5f, z*0.5f);
+		gGL.vertex3f(x1, y1, z);
+		gGL.texCoord2f(tex_coord1*0.5f + 0.5f, z*0.5f);
+		gGL.vertex3f(x1, y1, z);
 		gGL.texCoord2f(tex_coord2*0.5f+0.5f, z*0.5f);
 		gGL.vertex3f(x2, y2, z);
-
-		gGL.texCoord2f(tex_coord1*0.5f+0.5f, z*0.5f);
-		gGL.vertex3f(x1, y1, z);
+		gGL.texCoord2f(tex_coord1*0.5f + 0.5f, z1*0.5f);
+		gGL.vertex3f(x1, y1, z1);
 	}
 }
 
@@ -622,7 +617,7 @@ void LLViewerParcelMgr::renderHighlightSegments(const U8* segments, LLViewerRegi
 				if (!has_segments)
 				{
 					has_segments = true;
-					gGL.begin(LLRender::QUADS);
+					gGL.begin(LLRender::TRIANGLES);
 				}
 				renderOneSegment(x1, y1, x2, y2, PARCEL_POST_HEIGHT, SOUTH_MASK, regionp);
 			}
@@ -638,7 +633,7 @@ void LLViewerParcelMgr::renderHighlightSegments(const U8* segments, LLViewerRegi
 				if (!has_segments)
 				{
 					has_segments = true;
-					gGL.begin(LLRender::QUADS);
+					gGL.begin(LLRender::TRIANGLES);
 				}
 				renderOneSegment(x1, y1, x2, y2, PARCEL_POST_HEIGHT, WEST_MASK, regionp);
 			}
@@ -694,7 +689,7 @@ void LLViewerParcelMgr::renderCollisionSegments(U8* segments, BOOL use_pass, LLV
 		gGL.getTexUnit(0)->bind(mBlockedImage);
 	}
 
-	gGL.begin(LLRender::QUADS);
+	gGL.begin(LLRender::TRIANGLES);
 
 	for (y = 0; y < STRIDE; y++)
 	{
diff --git a/indra/newview/llhudeffectblob.cpp b/indra/newview/llhudeffectblob.cpp
index a41a772a4d55aabb2bc9530f93f3c57a380f8dc9..0e1395865dc4ba72dfc70ed8486059f1fc6b2a84 100644
--- a/indra/newview/llhudeffectblob.cpp
+++ b/indra/newview/llhudeffectblob.cpp
@@ -78,15 +78,20 @@ void LLHUDEffectBlob::render()
 		LLVector3 u_scale = pixel_right * (F32)mPixelSize;
 		LLVector3 v_scale = pixel_up * (F32)mPixelSize;
 		
-		{ gGL.begin(LLRender::QUADS);
+		{ gGL.begin(LLRender::TRIANGLES);
 			gGL.texCoord2f(0.f, 1.f);
 			gGL.vertex3fv((v_scale - u_scale).mV);
 			gGL.texCoord2f(0.f, 0.f);
 			gGL.vertex3fv((-v_scale - u_scale).mV);
-			gGL.texCoord2f(1.f, 0.f);
-			gGL.vertex3fv((-v_scale + u_scale).mV);
 			gGL.texCoord2f(1.f, 1.f);
 			gGL.vertex3fv((v_scale + u_scale).mV);
+			gGL.texCoord2f(1.f, 1.f);
+			gGL.vertex3fv((v_scale + u_scale).mV);
+			gGL.texCoord2f(0.f, 0.f);
+			gGL.vertex3fv((-v_scale - u_scale).mV);
+			gGL.texCoord2f(1.f, 0.f);
+			gGL.vertex3fv((-v_scale + u_scale).mV);
+			
 		} gGL.end();
 
 	} gGL.popMatrix();
diff --git a/indra/newview/llhudicon.cpp b/indra/newview/llhudicon.cpp
index 9e065ff244e263fc5bdb6e101e39851b76384b9d..3c33fee1dca4782bd569590d0da39f970ea20706 100644
--- a/indra/newview/llhudicon.cpp
+++ b/indra/newview/llhudicon.cpp
@@ -164,16 +164,16 @@ void LLHUDIcon::renderIcon(BOOL for_select)
 		gGL.getTexUnit(0)->bind(mImagep);
 	}
 
-	gGL.begin(LLRender::QUADS);
+	gGL.begin(LLRender::TRIANGLE_STRIP);
 	{
 		gGL.texCoord2f(0.f, 1.f);
 		gGL.vertex3fv(upper_left.mV);
 		gGL.texCoord2f(0.f, 0.f);
 		gGL.vertex3fv(lower_left.mV);
-		gGL.texCoord2f(1.f, 0.f);
-		gGL.vertex3fv(lower_right.mV);
 		gGL.texCoord2f(1.f, 1.f);
 		gGL.vertex3fv(upper_right.mV);
+		gGL.texCoord2f(1.f, 0.f);
+		gGL.vertex3fv(lower_right.mV);
 	}
 	gGL.end();
 }
diff --git a/indra/newview/lljoystickbutton.cpp b/indra/newview/lljoystickbutton.cpp
index 79fafade2d2489cefd87d6ebb70644315824ac11..238b2dc66ae6cadc05e5c6189aa38b04d51155bf 100644
--- a/indra/newview/lljoystickbutton.cpp
+++ b/indra/newview/lljoystickbutton.cpp
@@ -637,7 +637,7 @@ void LLJoystickCameraRotate::drawRotatedImage( LLPointer<LLUIImage> image, S32 r
 
 	gGL.color4fv(UI_VERTEX_COLOR.mV);
 	
-	gGL.begin(LLRender::QUADS);
+	gGL.begin(LLRender::TRIANGLE_STRIP);
 	{
 		gGL.texCoord2fv( uv[ (rotations + 0) % 4]);
 		gGL.vertex2i(width, height );
@@ -645,11 +645,11 @@ void LLJoystickCameraRotate::drawRotatedImage( LLPointer<LLUIImage> image, S32 r
 		gGL.texCoord2fv( uv[ (rotations + 1) % 4]);
 		gGL.vertex2i(0, height );
 
-		gGL.texCoord2fv( uv[ (rotations + 2) % 4]);
-		gGL.vertex2i(0, 0);
-
 		gGL.texCoord2fv( uv[ (rotations + 3) % 4]);
 		gGL.vertex2i(width, 0);
+
+		gGL.texCoord2fv( uv[ (rotations + 2) % 4]);
+		gGL.vertex2i(0, 0);
 	}
 	gGL.end();
 }
@@ -909,7 +909,7 @@ void LLJoystickQuaternion::drawRotatedImage(LLPointer<LLUIImage> image, S32 rota
 
     gGL.color4fv(UI_VERTEX_COLOR.mV);
 
-    gGL.begin(LLRender::QUADS);
+    gGL.begin(LLRender::TRIANGLES);
     {
         gGL.texCoord2fv(uv[(rotations + 0) % 4]);
         gGL.vertex2i(width, height);
@@ -920,6 +920,12 @@ void LLJoystickQuaternion::drawRotatedImage(LLPointer<LLUIImage> image, S32 rota
         gGL.texCoord2fv(uv[(rotations + 2) % 4]);
         gGL.vertex2i(0, 0);
 
+        gGL.texCoord2fv(uv[(rotations + 0) % 4]);
+        gGL.vertex2i(width, height);
+
+        gGL.texCoord2fv(uv[(rotations + 1) % 4]);
+        gGL.vertex2i(0, height);
+
         gGL.texCoord2fv(uv[(rotations + 3) % 4]);
         gGL.vertex2i(width, 0);
     }
diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index b3612195b4f26a68dc8ade89a4d27be1a1320cc0..0932cc120bebfc63246ee09dfe0152a2770d723d 100644
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -626,43 +626,55 @@ void LLManipScale::renderFaces( const LLBBox& bbox )
 	{
 		gGL.color4fv( default_normal_color.mV );
 		LLGLDepthTest gls_depth(GL_FALSE);
-		gGL.begin(LLRender::QUADS);
+		gGL.begin(LLRender::TRIANGLES); 
 		{
 			// Face 0
 			gGL.vertex3f(min.mV[VX], max.mV[VY], max.mV[VZ]);
 			gGL.vertex3f(min.mV[VX], min.mV[VY], max.mV[VZ]);
-			gGL.vertex3f(max.mV[VX], min.mV[VY], max.mV[VZ]);
 			gGL.vertex3f(max.mV[VX], max.mV[VY], max.mV[VZ]);
+			gGL.vertex3f(max.mV[VX], max.mV[VY], max.mV[VZ]);
+			gGL.vertex3f(min.mV[VX], min.mV[VY], max.mV[VZ]);
+			gGL.vertex3f(max.mV[VX], min.mV[VY], max.mV[VZ]);
 
 			// Face 1
 			gGL.vertex3f(max.mV[VX], min.mV[VY], max.mV[VZ]);
 			gGL.vertex3f(max.mV[VX], min.mV[VY], min.mV[VZ]);
-			gGL.vertex3f(max.mV[VX], max.mV[VY], min.mV[VZ]);
 			gGL.vertex3f(max.mV[VX], max.mV[VY], max.mV[VZ]);
+			gGL.vertex3f(max.mV[VX], max.mV[VY], max.mV[VZ]);
+			gGL.vertex3f(max.mV[VX], min.mV[VY], min.mV[VZ]);
+			gGL.vertex3f(max.mV[VX], max.mV[VY], min.mV[VZ]);
 
 			// Face 2
 			gGL.vertex3f(min.mV[VX], max.mV[VY], min.mV[VZ]);
 			gGL.vertex3f(min.mV[VX], max.mV[VY], max.mV[VZ]);
-			gGL.vertex3f(max.mV[VX], max.mV[VY], max.mV[VZ]);
 			gGL.vertex3f(max.mV[VX], max.mV[VY], min.mV[VZ]);
+			gGL.vertex3f(max.mV[VX], max.mV[VY], min.mV[VZ]);
+			gGL.vertex3f(min.mV[VX], max.mV[VY], max.mV[VZ]);
+			gGL.vertex3f(max.mV[VX], max.mV[VY], max.mV[VZ]);
 
 			// Face 3
 			gGL.vertex3f(min.mV[VX], max.mV[VY], max.mV[VZ]);
 			gGL.vertex3f(min.mV[VX], max.mV[VY], min.mV[VZ]);
-			gGL.vertex3f(min.mV[VX], min.mV[VY], min.mV[VZ]);
 			gGL.vertex3f(min.mV[VX], min.mV[VY], max.mV[VZ]);
+			gGL.vertex3f(min.mV[VX], min.mV[VY], max.mV[VZ]);
+			gGL.vertex3f(min.mV[VX], max.mV[VY], min.mV[VZ]);
+			gGL.vertex3f(min.mV[VX], min.mV[VY], min.mV[VZ]);
 
 			// Face 4
 			gGL.vertex3f(min.mV[VX], min.mV[VY], max.mV[VZ]);
 			gGL.vertex3f(min.mV[VX], min.mV[VY], min.mV[VZ]);
-			gGL.vertex3f(max.mV[VX], min.mV[VY], min.mV[VZ]);
 			gGL.vertex3f(max.mV[VX], min.mV[VY], max.mV[VZ]);
+			gGL.vertex3f(max.mV[VX], min.mV[VY], max.mV[VZ]);
+			gGL.vertex3f(min.mV[VX], min.mV[VY], min.mV[VZ]);
+			gGL.vertex3f(max.mV[VX], min.mV[VY], min.mV[VZ]);
 
 			// Face 5
 			gGL.vertex3f(min.mV[VX], min.mV[VY], min.mV[VZ]);
 			gGL.vertex3f(min.mV[VX], max.mV[VY], min.mV[VZ]);
-			gGL.vertex3f(max.mV[VX], max.mV[VY], min.mV[VZ]);
 			gGL.vertex3f(max.mV[VX], min.mV[VY], min.mV[VZ]);
+			gGL.vertex3f(max.mV[VX], min.mV[VY], min.mV[VZ]);
+			gGL.vertex3f(min.mV[VX], max.mV[VY], min.mV[VZ]);
+			gGL.vertex3f(max.mV[VX], max.mV[VY], min.mV[VZ]);
 		}
 		gGL.end();
 	}
diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp
index 80270098d866575b3d9255031e436b5edf3b2e61..4e91840d3cb14b774f98b6707c95497754ff3a8e 100644
--- a/indra/newview/llmediactrl.cpp
+++ b/indra/newview/llmediactrl.cpp
@@ -853,7 +853,7 @@ void LLMediaCtrl::draw()
 			calcOffsetsAndSize(&x_offset, &y_offset, &width, &height);
 
 			// draw the browser
-			gGL.begin( LLRender::QUADS );
+			gGL.begin( LLRender::TRIANGLE_STRIP );
 			if (! media_plugin->getTextureCoordsOpenGL())
 			{
 				// render using web browser reported width and height, instead of trying to invert GL scale
@@ -863,11 +863,11 @@ void LLMediaCtrl::draw()
 				gGL.texCoord2f( 0.f, 0.f );
 				gGL.vertex2i( x_offset, y_offset + height );
 
+				gGL.texCoord2f(max_u, max_v);
+				gGL.vertex2i(x_offset + width, y_offset);
+
 				gGL.texCoord2f( 0.f, max_v );
 				gGL.vertex2i( x_offset, y_offset );
-
-				gGL.texCoord2f( max_u, max_v );
-				gGL.vertex2i( x_offset + width, y_offset );
 			}
 			else
 			{
@@ -878,11 +878,11 @@ void LLMediaCtrl::draw()
 				gGL.texCoord2f( 0.f, max_v );
 				gGL.vertex2i( x_offset, y_offset + height );
 
+				gGL.texCoord2f(max_u, 0.f);
+				gGL.vertex2i(x_offset + width, y_offset);
+
 				gGL.texCoord2f( 0.f, 0.f );
 				gGL.vertex2i( x_offset, y_offset );
-
-				gGL.texCoord2f( max_u, 0.f );
-				gGL.vertex2i( x_offset + width, y_offset );
 			}
 			gGL.end();
 		}
diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp
index 5f733ca3a35a48e41f55f15213f572cfc4fa56d5..b47783dd0e09fe3b3ba7b2259eab7828f4eb9a3c 100644
--- a/indra/newview/llnetmap.cpp
+++ b/indra/newview/llnetmap.cpp
@@ -312,15 +312,15 @@ void LLNetMap::draw()
 					if (img && img->hasGLTexture())
 					{
 						gGL.getTexUnit(0)->bind(img);
-						gGL.begin(LLRender::QUADS);
+						gGL.begin(LLRender::TRIANGLE_STRIP);
 							gGL.texCoord2f(0.f, 1.f);
 							gGL.vertex2f(local_left, local_top);
 							gGL.texCoord2f(0.f, 0.f);
 							gGL.vertex2f(local_left, local_bottom);
-							gGL.texCoord2f(1.f, 0.f);
-							gGL.vertex2f(local_right, local_bottom);
 							gGL.texCoord2f(1.f, 1.f);
 							gGL.vertex2f(local_right, local_top);
+							gGL.texCoord2f(1.f, 0.f);
+							gGL.vertex2f(local_right, local_bottom);
 						gGL.end();
 						img->setBoostLevel(LLViewerTexture::BOOST_MAP_VISIBLE);
 						render_land_textures = false;
@@ -332,15 +332,15 @@ void LLNetMap::draw()
 			{
 				// Draw using texture.
 				gGL.getTexUnit(0)->bind(regionp->getLand().getSTexture());
-				gGL.begin(LLRender::QUADS);
+				gGL.begin(LLRender::TRIANGLE_STRIP);
 					gGL.texCoord2f(0.f, 1.f);
 					gGL.vertex2f(left, top);
 					gGL.texCoord2f(0.f, 0.f);
 					gGL.vertex2f(left, bottom);
-					gGL.texCoord2f(1.f, 0.f);
-					gGL.vertex2f(right, bottom);
 					gGL.texCoord2f(1.f, 1.f);
 					gGL.vertex2f(right, top);
+					gGL.texCoord2f(1.f, 0.f);
+					gGL.vertex2f(right, bottom);
 				gGL.end();
 
 				// Draw water
@@ -349,15 +349,15 @@ void LLNetMap::draw()
 					if (regionp->getLand().getWaterTexture())
 					{
 						gGL.getTexUnit(0)->bind(regionp->getLand().getWaterTexture());
-						gGL.begin(LLRender::QUADS);
+						gGL.begin(LLRender::TRIANGLE_STRIP);
 							gGL.texCoord2f(0.f, 1.f);
 							gGL.vertex2f(left, top);
 							gGL.texCoord2f(0.f, 0.f);
 							gGL.vertex2f(left, bottom);
-							gGL.texCoord2f(1.f, 0.f);
-							gGL.vertex2f(right, bottom);
 							gGL.texCoord2f(1.f, 1.f);
 							gGL.vertex2f(right, top);
+							gGL.texCoord2f(1.f, 0.f);
+							gGL.vertex2f(right, bottom);
 						gGL.end();
 					}
 				}
@@ -410,16 +410,16 @@ void LLNetMap::draw()
 
 				gGL.getTexUnit(0)->bind(mObjectImagep);
 
-				gGL.begin(LLRender::QUADS);
+				gGL.begin(LLRender::TRIANGLE_STRIP);
 				{
 					gGL.texCoord2f(0.f, 1.f);
 					gGL.vertex2f(map_center_agent.mV[VX] - image_half_width, image_half_height + map_center_agent.mV[VY]);
 					gGL.texCoord2f(0.f, 0.f);
 					gGL.vertex2f(map_center_agent.mV[VX] - image_half_width, map_center_agent.mV[VY] - image_half_height);
-					gGL.texCoord2f(1.f, 0.f);
-					gGL.vertex2f(image_half_width + map_center_agent.mV[VX], map_center_agent.mV[VY] - image_half_height);
 					gGL.texCoord2f(1.f, 1.f);
 					gGL.vertex2f(image_half_width + map_center_agent.mV[VX], image_half_height + map_center_agent.mV[VY]);
+					gGL.texCoord2f(1.f, 0.f);
+					gGL.vertex2f(image_half_width + map_center_agent.mV[VX], map_center_agent.mV[VY] - image_half_height);
 				}
 				gGL.end();
 			}
diff --git a/indra/newview/llsnapshotlivepreview.cpp b/indra/newview/llsnapshotlivepreview.cpp
index 61fafe85a300a607916902219aa50183f068b36f..0041a4b55750fd329148aaec6d54f548636ef1b6 100644
--- a/indra/newview/llsnapshotlivepreview.cpp
+++ b/indra/newview/llsnapshotlivepreview.cpp
@@ -297,13 +297,19 @@ void LLSnapshotLivePreview::draw()
 		gGL.pushMatrix();
 		{	
 			gGL.translatef((F32)rect.mLeft, (F32)rect.mBottom + TOP_PANEL_HEIGHT, 0.f);
-			gGL.begin(LLRender::QUADS);
+			gGL.begin(LLRender::TRIANGLES);
 			{
+				gGL.texCoord2f(0.f, uv_height);
+				gGL.vertex2i(0, rect.getHeight() );
+				
+				gGL.texCoord2f(0.f, 0.f);
+				gGL.vertex2i(0, 0);
+				
 				gGL.texCoord2f(uv_width, uv_height);
 				gGL.vertex2i(rect.getWidth(), rect.getHeight() );
 
-				gGL.texCoord2f(0.f, uv_height);
-				gGL.vertex2i(0, rect.getHeight() );
+				gGL.texCoord2f(uv_width, uv_height);
+				gGL.vertex2i(rect.getWidth(), rect.getHeight() );
 
 				gGL.texCoord2f(0.f, 0.f);
 				gGL.vertex2i(0, 0);
@@ -359,18 +365,18 @@ void LLSnapshotLivePreview::draw()
 				S32 y2 = gViewerWindow->getWindowHeightScaled() + TOP_PANEL_HEIGHT;
 
 				gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
-				gGL.begin(LLRender::QUADS);
+				gGL.begin(LLRender::TRIANGLE_STRIP);
 				{
 					gGL.color4f(1.f, 1.f, 1.f, 0.f);
-					gGL.vertex2i(x1, y1);
 					gGL.vertex2i(x1 + gViewerWindow->getWindowWidthScaled(), y2);
+					gGL.vertex2i(x1, y1);
 					gGL.color4f(1.f, 1.f, 1.f, SHINE_OPACITY);
 					gGL.vertex2i(x2 + gViewerWindow->getWindowWidthScaled(), y2);
 					gGL.vertex2i(x2, y1);
 
 					gGL.color4f(1.f, 1.f, 1.f, SHINE_OPACITY);
-					gGL.vertex2i(x2, y1);
 					gGL.vertex2i(x2 + gViewerWindow->getWindowWidthScaled(), y2);
+					gGL.vertex2i(x2, y1);
 					gGL.color4f(1.f, 1.f, 1.f, 0.f);
 					gGL.vertex2i(x3 + gViewerWindow->getWindowWidthScaled(), y2);
 					gGL.vertex2i(x3, y1);
@@ -408,7 +414,7 @@ void LLSnapshotLivePreview::draw()
 				LLRect& rect = mImageRect[old_image_index];
 				gGL.translatef((F32)rect.mLeft, (F32)rect.mBottom - ll_round(getRect().getHeight() * 2.f * (fall_interp * fall_interp)), 0.f);
 				gGL.rotatef(-45.f * fall_interp, 0.f, 0.f, 1.f);
-				gGL.begin(LLRender::QUADS);
+				gGL.begin(LLRender::TRIANGLE_STRIP);
 				{
 					gGL.texCoord2f(uv_width, uv_height);
 					gGL.vertex2i(rect.getWidth(), rect.getHeight() );
@@ -416,11 +422,11 @@ void LLSnapshotLivePreview::draw()
 					gGL.texCoord2f(0.f, uv_height);
 					gGL.vertex2i(0, rect.getHeight() );
 
-					gGL.texCoord2f(0.f, 0.f);
-					gGL.vertex2i(0, 0);
-
 					gGL.texCoord2f(uv_width, 0.f);
 					gGL.vertex2i(rect.getWidth(), 0);
+
+					gGL.texCoord2f(0.f, 0.f);
+					gGL.vertex2i(0, 0);
 				}
 				gGL.end();
 			}
diff --git a/indra/newview/lltoolmorph.cpp b/indra/newview/lltoolmorph.cpp
index 7bf20ee4a9ae730b542f919f960980a39ad0d28e..8cdfe7feb824504588a77408a774ebe8049a2034 100644
--- a/indra/newview/lltoolmorph.cpp
+++ b/indra/newview/lltoolmorph.cpp
@@ -282,16 +282,16 @@ void LLVisualParamHint::draw(F32 alpha)
 	gGL.color4f(1.f, 1.f, 1.f, alpha);
 
 	LLGLSUIDefault gls_ui;
-	gGL.begin(LLRender::QUADS);
+	gGL.begin(LLRender::TRIANGLE_STRIP);
 	{
 		gGL.texCoord2i(0, 1);
 		gGL.vertex2i(0, mFullHeight);
 		gGL.texCoord2i(0, 0);
 		gGL.vertex2i(0, 0);
-		gGL.texCoord2i(1, 0);
-		gGL.vertex2i(mFullWidth, 0);
 		gGL.texCoord2i(1, 1);
 		gGL.vertex2i(mFullWidth, mFullHeight);
+		gGL.texCoord2i(1, 0);
+		gGL.vertex2i(mFullWidth, 0);
 	}
 	gGL.end();
 
diff --git a/indra/newview/llviewerjointattachment.cpp b/indra/newview/llviewerjointattachment.cpp
index 1054f110e8562a510477a61bf87617ec414c97b6..7785474b3d25c8a5d5c3b6bd2a458ff26d655c22 100644
--- a/indra/newview/llviewerjointattachment.cpp
+++ b/indra/newview/llviewerjointattachment.cpp
@@ -89,12 +89,12 @@ U32 LLViewerJointAttachment::drawShape( F32 pixelArea, BOOL first_pass, BOOL is_
 		LLGLDisable cull_face(GL_CULL_FACE);
 		
 		gGL.color4f(1.f, 1.f, 1.f, 1.f);
-		gGL.begin(LLRender::QUADS);
+		gGL.begin(LLRender::TRIANGLE_STRIP);
 		{
 			gGL.vertex3f(-0.1f, 0.1f, 0.f);
 			gGL.vertex3f(-0.1f, -0.1f, 0.f);
-			gGL.vertex3f(0.1f, -0.1f, 0.f);
 			gGL.vertex3f(0.1f, 0.1f, 0.f);
+			gGL.vertex3f(0.1f, -0.1f, 0.f);
 		}gGL.end();
 	}
 	return 0;
diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp
index 73d0ed49ad34f282f9e1135d190130dce0585e45..ce14b84cb787de5427f254cebda48ae151f18865 100644
--- a/indra/newview/llworldmapview.cpp
+++ b/indra/newview/llworldmapview.cpp
@@ -392,11 +392,11 @@ void LLWorldMapView::draw()
 			gGL.color4f(0.2f, 0.0f, 0.0f, 0.4f);
 
 			gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
-			gGL.begin(LLRender::QUADS);
+			gGL.begin(LLRender::TRIANGLE_STRIP);
 				gGL.vertex2f(left, top);
 				gGL.vertex2f(left, bottom);
-				gGL.vertex2f(right, bottom);
 				gGL.vertex2f(right, top);
+				gGL.vertex2f(right, bottom);
 			gGL.end();
 		}
         // As part of the AO project, we no longer want to draw access indicators;
@@ -433,15 +433,15 @@ void LLWorldMapView::draw()
 					gGL.blendFunc(LLRender::BF_SOURCE_ALPHA, LLRender::BF_ONE_MINUS_SOURCE_ALPHA);	
 					gGL.getTexUnit(0)->bind(overlayimage);
 					gGL.color4f(1.f, 1.f, 1.f, 1.f);
-					gGL.begin(LLRender::QUADS);
+					gGL.begin(LLRender::TRIANGLE_STRIP);
 						gGL.texCoord2f(0.f, 1.f);
 						gGL.vertex3f(left, top, -0.5f);
 						gGL.texCoord2f(0.f, 0.f);
 						gGL.vertex3f(left, bottom, -0.5f);
-						gGL.texCoord2f(1.f, 0.f);
-						gGL.vertex3f(right, bottom, -0.5f);
 						gGL.texCoord2f(1.f, 1.f);
 						gGL.vertex3f(right, top, -0.5f);
+						gGL.texCoord2f(1.f, 0.f);
+						gGL.vertex3f(right, bottom, -0.5f);
 					gGL.end();
 				}
 			}
@@ -716,15 +716,15 @@ bool LLWorldMapView::drawMipmapLevel(S32 width, S32 height, S32 level, bool load
 					gGL.setSceneBlendType(LLRender::BT_ALPHA);
 					gGL.color4f(1.f, 1.0f, 1.0f, 1.0f);
 
-					gGL.begin(LLRender::QUADS);
+					gGL.begin(LLRender::TRIANGLE_STRIP);
 						gGL.texCoord2f(0.f, 1.f);
 						gGL.vertex3f(left, top, 0.f);
 						gGL.texCoord2f(0.f, 0.f);
 						gGL.vertex3f(left, bottom, 0.f);
-						gGL.texCoord2f(1.f, 0.f);
-						gGL.vertex3f(right, bottom, 0.f);
 						gGL.texCoord2f(1.f, 1.f);
 						gGL.vertex3f(right, top, 0.f);
+						gGL.texCoord2f(1.f, 0.f);
+						gGL.vertex3f(right, bottom, 0.f);
 					gGL.end();
 #if DEBUG_DRAW_TILE
 					drawTileOutline(level, top, left, bottom, right);
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 83802376a4b25b940f531e3e86d72fdbd40a81bb..76189d5ba03a9706e33b587f080633544d580e52 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -11346,11 +11346,11 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar)
 		}
 
 		{
-		gGL.begin(LLRender::QUADS);
+		gGL.begin(LLRender::TRIANGLE_STRIP);
 		gGL.vertex3f(-1, -1, clip_plane);
 		gGL.vertex3f(1, -1, clip_plane);
-		gGL.vertex3f(1, 1, clip_plane);
 		gGL.vertex3f(-1, 1, clip_plane);
+		gGL.vertex3f(1, 1, clip_plane);
 		gGL.end();
 		gGL.flush();
 		}