diff --git a/rsProgramVertex.cpp b/rsProgramVertex.cpp
index 2be6a7d..8e59bc2 100644
--- a/rsProgramVertex.cpp
+++ b/rsProgramVertex.cpp
@@ -56,10 +56,10 @@
 static void logMatrix(const char *txt, const float *f)
 {
     LOGV("Matrix %s, %p", txt, f);
-    LOGV("%6.2f, %6.2f, %6.2f, %6.2f", f[0], f[4], f[8], f[12]);
-    LOGV("%6.2f, %6.2f, %6.2f, %6.2f", f[1], f[5], f[9], f[13]);
-    LOGV("%6.2f, %6.2f, %6.2f, %6.2f", f[2], f[6], f[10], f[14]);
-    LOGV("%6.2f, %6.2f, %6.2f, %6.2f", f[3], f[7], f[11], f[15]);
+    LOGV("%6.4f, %6.4f, %6.4f, %6.4f", f[0], f[4], f[8], f[12]);
+    LOGV("%6.4f, %6.4f, %6.4f, %6.4f", f[1], f[5], f[9], f[13]);
+    LOGV("%6.4f, %6.4f, %6.4f, %6.4f", f[2], f[6], f[10], f[14]);
+    LOGV("%6.4f, %6.4f, %6.4f, %6.4f", f[3], f[7], f[11], f[15]);
 }
 
 void ProgramVertex::setupGL(const Context *rsc, ProgramVertexState *state)
diff --git a/rsVertexArray.cpp b/rsVertexArray.cpp
index 7a8e054..7124eb5 100644
--- a/rsVertexArray.cpp
+++ b/rsVertexArray.cpp
@@ -26,7 +26,6 @@
 VertexArray::VertexArray()
 {
     mActiveBuffer = 0;
-    mUserCount = 0;
 }
 
 VertexArray::~VertexArray()
@@ -40,7 +39,6 @@
         mAttribs[ct].clear();
     }
     mActiveBuffer = 0;
-    mUserCount = 0;
 }
 
 VertexArray::Attrib::Attrib()
@@ -127,10 +125,13 @@
 
 void VertexArray::setUser(const Attrib &a, uint32_t stride)
 {
-    mAttribs[mUserCount].set(a);
-    mAttribs[mUserCount].buffer = mActiveBuffer;
-    mAttribs[mUserCount].stride = stride;
-    mUserCount ++;
+    // Find empty slot, some may be taken by legacy 1.1 slots.
+    uint32_t slot = 0;
+    while (mAttribs[slot].size) slot++;
+    rsAssert(slot < RS_MAX_ATTRIBS);
+    mAttribs[slot].set(a);
+    mAttribs[slot].buffer = mActiveBuffer;
+    mAttribs[slot].stride = stride;
 }
 
 void VertexArray::logAttrib(uint32_t idx, uint32_t slot) const {
@@ -215,9 +216,8 @@
     }
 
     for (uint32_t ct=0; ct < RS_MAX_ATTRIBS; ct++) {
-        if (mAttribs[ct].size) {
+        if (mAttribs[ct].size && (sc->vtxAttribSlot(ct) >= 0)) {
             //logAttrib(ct, sc->vtxAttribSlot(ct));
-            rsAssert(sc->vtxAttribSlot(ct) >= 0);
             glEnableVertexAttribArray(sc->vtxAttribSlot(ct));
             glBindBuffer(GL_ARRAY_BUFFER, mAttribs[ct].buffer);
 
diff --git a/rsVertexArray.h b/rsVertexArray.h
index 998e9ad..26e6f84 100644
--- a/rsVertexArray.h
+++ b/rsVertexArray.h
@@ -76,7 +76,6 @@
 
 protected:
     uint32_t mActiveBuffer;
-    uint32_t mUserCount;
     Attrib mAttribs[RS_MAX_ATTRIBS];
 };
 
