diff --git a/src/main/java/com/aparapi/internal/instruction/ExpressionList.java b/src/main/java/com/aparapi/internal/instruction/ExpressionList.java
index 4aa24b5028a0ba2b1bb4eac0f8b09f0b2526c1c0..c7d38b13445944ce97d6095f85c216711483c731 100644
--- a/src/main/java/com/aparapi/internal/instruction/ExpressionList.java
+++ b/src/main/java/com/aparapi/internal/instruction/ExpressionList.java
@@ -813,7 +813,8 @@ public class ExpressionList{
                 logger.fine("Scope block from " + startPc + " to  " + (tail.getThisPC() + tail.getLength()));
                 for (Instruction i = head; i != null; i = i.getNextPC()) {
                     if (i.getThisPC() == startPc) {
-                        final Instruction startInstruction = i.getRootExpr().getPrevExpr();
+                        final Instruction j = i.getRootExpr().getPrevExpr();
+                        final Instruction startInstruction =  j == null ? i : j;
                         logger.fine("Start = " + startInstruction);
 
                         addAsComposites(ByteCode.COMPOSITE_ARBITRARY_SCOPE, startInstruction.getPrevExpr(), null);
diff --git a/src/main/java/com/aparapi/internal/instruction/InstructionSet.java b/src/main/java/com/aparapi/internal/instruction/InstructionSet.java
index cc331733f2696dffdd509c804ccd1d31cc63ee92..9fe5a71a74e1bb327066b78bd0d737cb55d48563 100644
--- a/src/main/java/com/aparapi/internal/instruction/InstructionSet.java
+++ b/src/main/java/com/aparapi/internal/instruction/InstructionSet.java
@@ -1276,7 +1276,7 @@ public class InstructionSet{
       @Override public boolean isDeclaration() {
          LocalVariableInfo lvi = method.getLocalVariableTableEntry().getVariable(getThisPC() + getLength(),
                getLocalVariableTableIndex());
-         return (lvi != null) && (lvi.getStart() == getThisPC() + getLength());
+             return (lvi != null) && (lvi.getStart() == getThisPC() + getLength() || lvi.getStart() == getThisPC());
       }
 
       @Override public String getDescription() {