diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/Config.java b/com.amd.aparapi/src/java/com/amd/aparapi/Config.java
index f45c3f8e6f7e7f814ee0aa3e52d7e3e6f2658ca8..699be065b01bd5de375e537a41d793f416fcd471 100644
--- a/com.amd.aparapi/src/java/com/amd/aparapi/Config.java
+++ b/com.amd.aparapi/src/java/com/amd/aparapi/Config.java
@@ -147,7 +147,8 @@ class Config{
 
    static final boolean enablePUTSTATIC = Boolean.getBoolean(propPkgName + ".enable.PUTSTATIC");
 
-   static final boolean enableGETSTATIC = Boolean.getBoolean(propPkgName + ".enable.GETSTATIC");
+   // Allow static array accesses 
+   static final boolean enableGETSTATIC = true; //Boolean.getBoolean(propPkgName + ".enable.GETSTATIC");
 
    static final boolean enableINVOKEINTERFACE = Boolean.getBoolean(propPkgName + ".enable.INVOKEINTERFACE");
 
diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/Entrypoint.java b/com.amd.aparapi/src/java/com/amd/aparapi/Entrypoint.java
index 348686972319196145cae01c39e105fb6dafee9d..a77b2ae4d13058896a5e12effe5b6a3236769fd2 100644
--- a/com.amd.aparapi/src/java/com/amd/aparapi/Entrypoint.java
+++ b/com.amd.aparapi/src/java/com/amd/aparapi/Entrypoint.java
@@ -558,8 +558,9 @@ class Entrypoint{
                   AssignToArrayElement assignment = (AssignToArrayElement) instruction;
 
                   Instruction arrayRef = assignment.getArrayRef();
-                  if (arrayRef instanceof I_GETFIELD) {
-                     I_GETFIELD getField = (I_GETFIELD) arrayRef;
+                  // AccessField here allows instance and static array refs
+                  if (arrayRef instanceof AccessField) {
+                     AccessField getField = (AccessField) arrayRef;
                      FieldEntry field = getField.getConstantPoolFieldEntry();
                      String assignedArrayFieldName = field.getNameAndTypeEntry().getNameUTF8Entry().getUTF8();
                      arrayFieldAssignments.add(assignedArrayFieldName);
@@ -570,8 +571,9 @@ class Entrypoint{
                   AccessArrayElement access = (AccessArrayElement) instruction;
 
                   Instruction arrayRef = access.getArrayRef();
-                  if (arrayRef instanceof I_GETFIELD) {
-                     I_GETFIELD getField = (I_GETFIELD) arrayRef;
+                  // AccessField here allows instance and static array refs
+                  if (arrayRef instanceof AccessField) {
+                     AccessField getField = (AccessField) arrayRef;
                      FieldEntry field = getField.getConstantPoolFieldEntry();
                      String accessedArrayFieldName = field.getNameAndTypeEntry().getNameUTF8Entry().getUTF8();
                      arrayFieldAccesses.add(accessedArrayFieldName);
diff --git a/test/codegen/src/java/com/amd/aparapi/test/ClassHasStaticFieldAccess.java b/test/codegen/src/java/com/amd/aparapi/test/ClassHasStaticFieldAccess.java
index ea061b7e42aa22c8437bb10a2633337d34a06b07..b04651b27f8e1523e5fda06f1dfb833fcc9c8055 100644
--- a/test/codegen/src/java/com/amd/aparapi/test/ClassHasStaticFieldAccess.java
+++ b/test/codegen/src/java/com/amd/aparapi/test/ClassHasStaticFieldAccess.java
@@ -13,4 +13,33 @@ public class ClassHasStaticFieldAccess{
       }
    }
 }
-/**{Throws{ClassParseException}Throws}**/
+/**{OpenCL{
+typedef struct This_s{
+   __global int *ints;
+   int foo;
+   int passid;
+}This;
+int get_pass_id(This *this){
+   return this->passid;
+}
+__kernel void run(
+   __global int *ints, 
+   int foo, 
+   int passid
+){
+   This thisStruct;
+   This* this=&thisStruct;
+   this->ints = ints;
+   this->foo = foo;
+   this->passid = passid;
+   {
+      for (int i = 0; i<1024; i++){
+         if ((i % 2)==0){
+            this->ints[i]  = foo;
+         }
+      }
+      return;
+   }
+}
+
+}OpenCL}**/
diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/UseStaticArray.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/UseStaticArray.java
new file mode 100644
index 0000000000000000000000000000000000000000..2564518f1fbf76133b22c9dc4fdd2705d0eb9951
--- /dev/null
+++ b/test/runtime/src/java/com/amd/aparapi/test/runtime/UseStaticArray.java
@@ -0,0 +1,40 @@
+package com.amd.aparapi.test.runtime;
+
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+import com.amd.aparapi.Kernel;
+
+
+public class UseStaticArray extends Kernel {
+
+   static final int size = 256;
+   
+   static final int[] values = new int[size];
+   static final int[] results = new int[size];
+   
+   @Override public void run() {
+      int gid = getGlobalId();
+      results[gid] = values[gid];
+   }   
+
+   @Test public void test() {
+
+      for(int i=0; i<size; i++) {
+         values[i] = i;
+         results[i] = 0;
+      }
+
+      execute(size);
+
+      assertTrue("ran on GPU", getExecutionMode()==Kernel.EXECUTION_MODE.GPU);
+
+      for(int i=0; i<size; i++) {
+         assertTrue( "results == fooBar", results[i] == values[i] );
+      }
+   }
+
+   public static void main(String args[]) {
+      UseStaticArray k = new UseStaticArray();
+      k.test();
+   }
+}