diff --git a/rsProgramVertex.cpp b/rsProgramVertex.cpp
index c3ef356..918625c 100644
--- a/rsProgramVertex.cpp
+++ b/rsProgramVertex.cpp
@@ -108,6 +108,11 @@
     rsc->checkError("ProgramVertex::setupGL2 start");
 
     if(!isUserProgram()) {
+        if(mConstants[0].get() == NULL) {
+            LOGE("Unable to set fixed function emulation matrices because allocation is missing");
+            rsc->setError(RS_ERROR_BAD_SHADER, "Fixed function allocation missing");
+            return;
+        }
         float *f = static_cast<float *>(mConstants[0]->getPtr());
         Matrix mvp;
         mvp.load(&f[RS_PROGRAM_VERTEX_PROJECTION_OFFSET]);
diff --git a/rsVertexArray.cpp b/rsVertexArray.cpp
index 075a70d..16be5ea 100644
--- a/rsVertexArray.cpp
+++ b/rsVertexArray.cpp
@@ -84,6 +84,10 @@
 
 void VertexArray::add(const Attrib &a, uint32_t stride)
 {
+    // Skip padding
+    if(a.name[0] == '#') {
+        return;
+    }
     rsAssert(mCount < RS_MAX_ATTRIBS);
     mAttribs[mCount].set(a);
     mAttribs[mCount].buffer = mActiveBuffer;
@@ -94,6 +98,10 @@
 
 void VertexArray::add(uint32_t type, uint32_t size, uint32_t stride, bool normalized, uint32_t offset, const char *name)
 {
+    // Skip padding
+    if(name[0] == '#') {
+        return;
+    }
     rsAssert(mCount < RS_MAX_ATTRIBS);
     mAttribs[mCount].clear();
     mAttribs[mCount].type = type;
@@ -129,12 +137,7 @@
 
     rsc->checkError("VertexArray::setupGL2 disabled");
     for (uint32_t ct=0; ct < mCount; ct++) {
-        int32_t slot = 0;
-
-        if (mAttribs[ct].name[0] == '#') {
-            continue;
-        }
-
+        int32_t slot = -1;
         if (sc->isUserVertexProgram()) {
             slot = sc->vtxAttribSlot(ct);
         } else {
@@ -146,14 +149,11 @@
                 slot = 2;
             } else if (mAttribs[ct].name == "texture0") {
                 slot = 3;
-            } else {
-                continue;
             }
         }
         if(slot < 0) {
             continue;
         }
-
         //logAttrib(ct, slot);
         glEnableVertexAttribArray(slot);
         glBindBuffer(GL_ARRAY_BUFFER, mAttribs[ct].buffer);
