diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/MethodModel.java b/com.amd.aparapi/src/java/com/amd/aparapi/MethodModel.java
index 93ba0e510d319aaae4e007e648909e8ab6bbceec..3de9b9b2e51ae301b2641d002faf177c53769e06 100644
--- a/com.amd.aparapi/src/java/com/amd/aparapi/MethodModel.java
+++ b/com.amd.aparapi/src/java/com/amd/aparapi/MethodModel.java
@@ -1513,6 +1513,8 @@ class MethodModel{
 
       List<LocalVariableInfo> list = new ArrayList<LocalVariableInfo>();
 
+      /*
+
       public class SlotTable{
          Slot[] slots;
 
@@ -1666,12 +1668,45 @@ class MethodModel{
 
          }
       }
+      
 
       SlotTable slotTable;
+      */
+
+      class Var{
+
+         int startPc = 0;
+
+         int endPc = 0;
+
+         String name = null;
+
+         // String descriptor;
+         Var(StoreSpec _storeSpec, int _slotIndex, int _startPc) {
+            startPc = _startPc;
+            if (_storeSpec.equals(StoreSpec.A)) {
+               name = "arr_" + _slotIndex;
+            } else {
+               name = _storeSpec.toString().toLowerCase() + "_" + _slotIndex;
+            }
+         }
+
+         Var() {
+            name = "NONE";
+         }
+
+         @Override public boolean equals(Object object) {
+            return (object instanceof Var && ((object == this) || ((Var) object).name.equals(name)));
+         }
+
+         public String toString() {
+            return (name + "[" + startPc + "-" + endPc + "]");
+         }
+      }
 
       public FakeLocalVariableTableEntry(Map<Integer, Instruction> _pcMap, ClassModelMethod _method) {
          int numberOfSlots = _method.getCodeEntry().getMaxLocals();
-
+         Var[] vars = new Var[numberOfSlots];
          MethodDescription description = ClassModel.getMethodDescription(_method.getDescriptor());
          String[] args = description.getArgs();
          StoreSpec[] argsAsStoreSpecs = new StoreSpec[args.length];
@@ -1681,35 +1716,56 @@ class MethodModel{
             } else {
                argsAsStoreSpecs[i] = StoreSpec.valueOf(args[i].substring(0, 1));
             }
+            vars[i] = new Var(argsAsStoreSpecs[i], i, 0);
+         }
+         for (int i = args.length; i < numberOfSlots; i++) {
+            vars[i] = new Var();
          }
 
          //  System.out.println("slots= " + numberOfSlots);
-         slotTable = new SlotTable(argsAsStoreSpecs, numberOfSlots, _pcMap);
+         // slotTable = new SlotTable(argsAsStoreSpecs, numberOfSlots, _pcMap);
          // System.out.println(slotTable);
+
          for (Entry<Integer, Instruction> entry : _pcMap.entrySet()) {
             int pc = entry.getKey();
             Instruction instruction = entry.getValue();
             LoadSpec loadSpec = instruction.getByteCode().getLoad();
             StoreSpec storeSpec = instruction.getByteCode().getStore();
 
+            int slotIndex = -1;
+
             if (loadSpec != LoadSpec.NONE) {
-               slotTable.setLoad(((InstructionSet.LocalVariableTableIndexAccessor) instruction).getLocalVariableTableIndex(), pc,
-                     loadSpec);
+               slotIndex = ((InstructionSet.LocalVariableTableIndexAccessor) instruction).getLocalVariableTableIndex();
+               //  slotTable.setLoad(slotIndex, pc,
+               //    loadSpec);
+               if (vars[slotIndex].endPc < pc) {
+                  vars[slotIndex].endPc = pc;
+               }
 
             }
             if (storeSpec != StoreSpec.NONE) {
-               slotTable.setStore(((InstructionSet.LocalVariableTableIndexAccessor) instruction).getLocalVariableTableIndex(), pc,
-                     storeSpec);
+
+               slotIndex = ((InstructionSet.LocalVariableTableIndexAccessor) instruction).getLocalVariableTableIndex();
+               // slotTable.setStore(slotIndex, pc,
+               //    storeSpec);
+               Var var = new Var(storeSpec, slotIndex, pc);
+               if (!vars[slotIndex].equals(var)) {
+                  vars[slotIndex] = var;
+               }
+
+            }
+            for (int i = 0; i < numberOfSlots; i++) {
+               System.out.print(vars[i] + "|");
             }
 
-            // System.out.println(" Instruction " + entry.getValue());
+            System.out.println(" Instruction " + entry.getValue() + " " + slotIndex);
          }
-         System.out.println(slotTable);
+         //  System.out.println(slotTable);
 
       }
 
       @Override public LocalVariableInfo getVariable(int _pc, int _index) {
-         return (slotTable.slots[_index].createLocalVariableInfo(_index));
+         return (null);//slotTable.slots[_index].createLocalVariableInfo(_index));
       }
 
       @Override public Iterator<LocalVariableInfo> iterator() {