Index: qgis/qgis_unstable/src/core/qgsvectorlayer.cpp
===================================================================
--- qgis.orig/qgis_unstable/src/core/qgsvectorlayer.cpp	2008-06-02 12:48:56.000000000 -0400
+++ qgis/qgis_unstable/src/core/qgsvectorlayer.cpp	2008-06-02 12:49:22.000000000 -0400
@@ -361,7 +361,8 @@
     const QgsMapToPixel* mtp,
     const QgsCoordinateTransform* ct,
     bool drawingToEditingCanvas,
-    bool drawArrows)
+    bool drawArrows,
+    bool drawEndPoints)
 {
   unsigned char *ptr = feature + 5;
   unsigned int wkbType = *((int*)(feature+1));
@@ -470,6 +471,8 @@
       {
 	if (i > 0) 
 	  {
+	    p->setBrush(QBrush(myColor, Qt::SolidPattern));
+
 	    QPointF p1 = pa[i];
 	    QPointF p2 = pa[i-1];
 	    
@@ -494,9 +497,17 @@
 	    }
 	    
 	    
+	  } else {
+	
 	  }
       }
   }
+  if (drawEndPoints) {
+    p->setBrush(QBrush(Qt::green, Qt::SolidPattern));
+    p->drawEllipse(pa[0].x(), pa[0].y(), 5, 5);
+    p->setBrush(QBrush(Qt::red, Qt::SolidPattern));
+    p->drawEllipse(pa[pa.size() - 1].x(), pa[pa.size() - 1].y(), 5, 5);
+  }
   //restore the pen
   p->setPen(pen);
   p->setBrush(brush);
@@ -3104,7 +3115,7 @@
                        p,
                        theMapToPixelTransform,
                        ct,
-                       drawingToEditingCanvas, TRUE);
+                       drawingToEditingCanvas, TRUE, TRUE);
         break;
       }
     case QGis::WKBMultiLineString:
Index: qgis/qgis_unstable/src/core/qgsvectorlayer.h
===================================================================
--- qgis.orig/qgis_unstable/src/core/qgsvectorlayer.h	2008-06-02 12:35:13.000000000 -0400
+++ qgis/qgis_unstable/src/core/qgsvectorlayer.h	2008-06-02 12:49:22.000000000 -0400
@@ -452,7 +452,8 @@
                                 const QgsMapToPixel* mtp,
                                 const QgsCoordinateTransform* ct,
                                 bool drawingToEditingCanvas,
-				bool drawArrows=FALSE);
+				bool drawArrows=FALSE,
+				bool drawEndPoints=FALSE);
 
   /** Draw the polygon as given in the WKB format. Returns a pointer to
    *  the byte after the end of the polygon binary data stream (WKB).
