Index: code/graphics/2d.h
===================================================================
--- code/graphics/2d.h	(revision 9384)
+++ code/graphics/2d.h	(working copy)
@@ -515,6 +515,8 @@
 	void (*gf_disable_team_color)();
 
 	void (*gf_update_texture)(int bitmap_handle, int bpp, ubyte* data, int width, int height);
+
+	void (*gf_draw_line_strip)(vertex **verts, int nv);
 } screen;
 
 // handy macro
@@ -822,6 +824,8 @@
 
 #define gr_update_texture				GR_CALL(*gr_screen.gf_update_texture)
 
+#define gr_draw_line_strip				GR_CALL(*gr_screen.gf_draw_line_strip)
+
 // color functions
 void gr_get_color( int *r, int *g, int  b );
 void gr_init_color(color *c, int r, int g, int b);
@@ -843,6 +847,9 @@
 ubyte* gr_opengl_get_texture_update_pointer(int bitmap_handle);
 void gr_opengl_update_texture(int bitmap_handle, int bpp, ubyte* data, int width, int height);
 
+// line strip drawing for jumpnodes
+void gr_opengl_draw_line_strip(vertex **verts, int nv);
+
 // special function for drawing polylines. this function is specifically intended for
 // polylines where each section is no more than 90 degrees away from a previous section.
 // Moreover, it is _really_ intended for use with 45 degree angles. 
Index: code/graphics/gropengl.cpp
===================================================================
--- code/graphics/gropengl.cpp	(revision 9384)
+++ code/graphics/gropengl.cpp	(working copy)
@@ -1917,6 +1917,8 @@
 	gr_screen.gf_disable_team_color = gr_opengl_disable_team_color;
 
 	gr_screen.gf_update_texture = gr_opengl_update_texture;
+
+	gr_screen.gf_draw_line_strip = gr_opengl_draw_line_strip;
 	// NOTE: All function pointers here should have a Cmdline_nohtl check at the top
 	//       if they shouldn't be run in non-HTL mode, Don't keep separate entries.
 	// *****************************************************************************
Index: code/graphics/gropengldraw.cpp
===================================================================
--- code/graphics/gropengldraw.cpp	(revision 9384)
+++ code/graphics/gropengldraw.cpp	(working copy)
@@ -2610,3 +2610,27 @@
 	GL_state.Blend(blend);
 	GL_state.CullFace(cull);
 }
+
+void gr_opengl_draw_line_strip(vertex **verts, int nv)
+{
+	SCP_vector<GLfloat> vert_buffer;
+	vert_buffer.reserve((nv + 1) * 3);
+	for(int i = 0; i < nv; i++) {
+		g3_project_vertex(verts[i]);
+		vert_buffer.push_back(verts[i]->screen.xyw.x);
+		vert_buffer.push_back(verts[i]->screen.xyw.y);
+		vert_buffer.push_back(-0.99f);
+	}
+	vert_buffer.push_back(verts[0]->screen.xyw.x);
+	vert_buffer.push_back(verts[0]->screen.xyw.y);
+	vert_buffer.push_back(-0.99f);
+	gr_opengl_set_2d_matrix();
+	GL_state.Color(gr_screen.current_color.red, gr_screen.current_color.green, gr_screen.current_color.blue, gr_screen.current_color.alpha); 
+	GL_state.Array.BindArrayBuffer(0);
+
+	GL_state.Array.EnableClientVertex();
+	GL_state.Array.VertexPointer(3, GL_FLOAT, 0, vert_buffer.data());
+	glDrawArrays(GL_LINE_STRIP, 0, nv + 1);
+	GL_state.Array.DisableClientVertex();
+	gr_opengl_end_2d_matrix();
+}
Index: code/graphics/grstub.cpp
===================================================================
--- code/graphics/grstub.cpp	(revision 9384)
+++ code/graphics/grstub.cpp	(working copy)
@@ -706,6 +706,9 @@
 void gr_stub_disable_team_color() {
 }
 
+void gr_stub_draw_line_strip(vertex **verts, int nv){
+}
+
 bool gr_stub_init() 
 {
 	if (gr_screen.res != GR_640) {
@@ -892,5 +895,7 @@
 	gr_screen.gf_disable_team_color = gr_stub_disable_team_color;
 
 	gr_screen.gf_update_texture = gr_stub_update_texture;
+
+	gr_screen.gf_draw_line_strip = gr_stub_draw_line_strip;
 	return true;
 }
Index: code/model/modelinterp.cpp
===================================================================
--- code/model/modelinterp.cpp	(revision 9384)
+++ code/model/modelinterp.cpp	(working copy)
@@ -1037,10 +1037,7 @@
 			gr_set_color_fast( &Interp_outline_color );
 		}
 
-		for (i=0; i<nv; i++ )	{
-			int j = (i + 1) % nv;
-	   		g3_draw_line(Interp_list[i], Interp_list[j]);
-		}
+		gr_draw_line_strip(Interp_list, nv);
 	}
 
 }
