diff --git a/Graphics/Entity.cpp b/Graphics/Entity.cpp
index 5a157a854c35aa333704cd70d1d682a7bf7046e2..8b5c2c0e35defea5f65db1634e244455ad165f55 100644
--- a/Graphics/Entity.cpp
+++ b/Graphics/Entity.cpp
@@ -384,7 +384,8 @@ void Draw_Vector(int Type, int Fill,
     }
     glBegin(GL_LINES);
     glVertex3d(x + dx, y + dy, z + dz);
-    //glColor4ubv((GLubyte *) & CTX.color.bg);
+    // color gradient
+    glColor4ubv((GLubyte *) & CTX.color.bg);
     glVertex3d(x, y, z);
     glEnd();
     break;
diff --git a/Graphics/Post.cpp b/Graphics/Post.cpp
index 1d23d6ae243b1846237b45499b5473ddcf7767c8..2c3f688b409e0940b4bb5c99e14b5fa3e6bf8b82 100644
--- a/Graphics/Post.cpp
+++ b/Graphics/Post.cpp
@@ -1065,7 +1065,7 @@ static void drawVectorArray(PView *p, VertexArray *va)
     glColor4ubv((GLubyte *)va->getColorArray(4 * i));
     double l = sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
     double lmax = opt->ArrowSizeProportional ? opt->TmpMax : l;
-    if(l && lmax){
+    if((l || opt->VectorType == 6) && lmax){
       double scale = opt->ArrowSize / lmax;
       // log scaling
       if(opt->ScaleType == PViewOptions::Logarithmic && 
@@ -1075,8 +1075,9 @@ static void drawVectorArray(PView *p, VertexArray *va)
 	  log10(l / opt->TmpMin) / log10(opt->TmpMax / opt->TmpMin);
       }
       double px = v[0] * scale, py = v[1] * scale, pz = v[2] * scale;
-      // only draw vectors larger than 1 pixel on screen
-      if(fabs(px) > 1. || fabs(py) > 1. || fabs(pz) > 1.){
+      // only draw vectors larger than 1 pixel on screen, except when
+      // drawing "comet" glyphs
+      if(opt->VectorType == 6 || fabs(px) > 1. || fabs(py) > 1. || fabs(pz) > 1.){
         double d = CTX.pixel_equiv_x / CTX.s[0];
         double dx = px * d, dy = py * d, dz = pz * d;
         double x = s[0], y = s[1], z = s[2];