Tint* anOffset = NULL;
           for (i = 0; i < myPArray->num_bounds; ++i)
           {
+            if (pfc != NULL) glColor3fv (pfc[i].rgb);
             glDrawElements (myDrawMode, myPArray->bounds[i], myVbos[VBOEdges]->GetDataType(), anOffset);
             anOffset += myPArray->bounds[i];
           }
       {
         for (i = n = 0; i < myPArray->num_bounds; ++i)
         {
+          if (pfc != NULL) glColor3fv (pfc[i].rgb);
           glDrawArrays (myDrawMode, n, myPArray->bounds[i]);
           n += myPArray->bounds[i];
         }
         {
           for (i = n = 0; i < myPArray->num_bounds; ++i)
           {
-            if (pfc != NULL)
-            {
-              glColor3fv (pfc[i].rgb);
-            }
+            if (pfc != NULL) glColor3fv (pfc[i].rgb);
             glDrawArrays (myDrawMode, n, myPArray->bounds[i]);
             n += myPArray->bounds[i];
           }
 
--- /dev/null
+puts "=========="
+puts "OCC23883"
+#################################################################################
+puts "Bound color in the primitive array do not work when displayed using VBO"
+#################################################################################
+
+set x_coord 321
+set y_coord 200
+
+vinit
+vvbo 0
+vdrawparray pl01 polylines 0 v 0 0 0 v 0 10 0 v 0 10 10 v 0 0 0 b 4 c 1 0 0
+vfit
+checkcolor $x_coord $y_coord 1 0 0
+
+vclear
+vvbo 1
+vdrawparray pl01 polylines 0 v 0 0 0 v 0 10 0 v 0 10 10 v 0 0 0 b 4 c 1 0 0
+checkcolor $x_coord $y_coord 1 0 0
+
+set only_screen 1
+
+