diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/BlockWriter.java b/com.amd.aparapi/src/java/com/amd/aparapi/BlockWriter.java
index 71fab3fc78eff41d4d480232b32342f7f38b49a8..c67292524f2f258c4d3c8c86da8c07f42160fb37 100644
--- a/com.amd.aparapi/src/java/com/amd/aparapi/BlockWriter.java
+++ b/com.amd.aparapi/src/java/com/amd/aparapi/BlockWriter.java
@@ -58,9 +58,9 @@ import com.amd.aparapi.InstructionSet.ByteCode;
 import com.amd.aparapi.InstructionSet.CastOperator;
 import com.amd.aparapi.InstructionSet.CloneInstruction;
 import com.amd.aparapi.InstructionSet.CompositeArbitraryScopeInstruction;
+import com.amd.aparapi.InstructionSet.CompositeDoWhileInstruction;
 import com.amd.aparapi.InstructionSet.CompositeEmptyLoopInstruction;
 import com.amd.aparapi.InstructionSet.CompositeForEclipseInstruction;
-import com.amd.aparapi.InstructionSet.CompositeDoWhileInstruction;
 import com.amd.aparapi.InstructionSet.CompositeForSunInstruction;
 import com.amd.aparapi.InstructionSet.CompositeIfElseInstruction;
 import com.amd.aparapi.InstructionSet.CompositeIfInstruction;
@@ -302,8 +302,7 @@ abstract class BlockWriter{
          writeConditional(((CompositeInstruction) instruction).getBranchSet(), true);
          write(");");
          newLine();
-         
-         
+
       }
    }
 
diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/ClassModel.java b/com.amd.aparapi/src/java/com/amd/aparapi/ClassModel.java
index ee0e3542924ce6dfaae7d388733d5b571556e364..ff4d2278a2e7ccbe588ee21d88fbe6d0741eb0b7 100644
--- a/com.amd.aparapi/src/java/com/amd/aparapi/ClassModel.java
+++ b/com.amd.aparapi/src/java/com/amd/aparapi/ClassModel.java
@@ -37,8 +37,8 @@ under those regulations, please refer to the U.S. Bureau of Industry and Securit
 */
 package com.amd.aparapi;
 
-import java.io.InputStream;
 import java.io.ByteArrayInputStream;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -153,7 +153,7 @@ class ClassModel{
 
    }
 
-   ClassModel(Class<?> _clazz,  byte[] _bytes) throws ClassParseException {
+   ClassModel(Class<?> _clazz, byte[] _bytes) throws ClassParseException {
       clazz = _clazz;
       parse(new ByteArrayInputStream(_bytes));
    }
@@ -2400,10 +2400,9 @@ class ClassModel{
       ClassModel getClassModel() {
          return (ClassModel.this);
       }
-      
+
       public String toString() {
-    	 return getClassModel().getClassWeAreModelling().getName() + "." + 
-            getName() + " " + getDescriptor();
+         return getClassModel().getClassWeAreModelling().getName() + "." + getName() + " " + getDescriptor();
       }
 
    }
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 699be065b01bd5de375e537a41d793f416fcd471..bdf014033e91e48a8105a64e535536ada5136a09 100644
--- a/com.amd.aparapi/src/java/com/amd/aparapi/Config.java
+++ b/com.amd.aparapi/src/java/com/amd/aparapi/Config.java
@@ -61,7 +61,7 @@ class Config{
     * 
     * Usage -agentpath=/full/path/to/agent.dll -Dcom.amd.aparapi.useAgent=true
     */
-    
+
    static final boolean useAgent = Boolean.getBoolean(propPkgName + ".useAgent");
 
    static final boolean disableUnsafe = Boolean.getBoolean(propPkgName + ".disableUnsafe");
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 a77b2ae4d13058896a5e12effe5b6a3236769fd2..b95d23776fda40504a49c06d4b3c4a6d63d914e5 100644
--- a/com.amd.aparapi/src/java/com/amd/aparapi/Entrypoint.java
+++ b/com.amd.aparapi/src/java/com/amd/aparapi/Entrypoint.java
@@ -396,7 +396,7 @@ class Entrypoint{
          }
       }
    }
-   
+
    /*
     * Find a suitable call target in the kernel class, supers, object members or static calls
     */
@@ -432,12 +432,12 @@ class Entrypoint{
             }
          }
       }
-      
+
       // Look for static call to some other class
       if ((m == null) && !isMapped && (methodCall instanceof I_INVOKESTATIC)) {
          String otherClassName = methodEntry.getClassEntry().getNameUTF8Entry().getUTF8().replace('/', '.');
          ClassModel otherClassModel = getOrUpdateAllClassAccesses(otherClassName);
-        
+
          //if (logger.isLoggable(Level.FINE)) {
          //   logger.fine("Looking for: " + methodEntry + " in other class " + otherClass.getName());
          //}
@@ -448,7 +448,7 @@ class Entrypoint{
       if (logger.isLoggable(Level.INFO)) {
          logger.fine("Selected method for: " + methodEntry + " is " + m);
       }
-      
+
       return m;
    }
 
@@ -484,7 +484,7 @@ class Entrypoint{
             methodMap.put(m, target);
             methodModel.getCalledMethods().add(target);
             discovered = true;
-         }         
+         }
       }
 
       // methodMap now contains a list of method called by run itself().
@@ -849,8 +849,8 @@ class Entrypoint{
       boolean isMapped = Kernel.isMappedMethod(_methodEntry);
 
       if (logger.isLoggable(Level.FINE) && target == null) {
-         logger.fine("Did not find call target: " + _methodEntry + " in " + 
-            getClassModel().getClassWeAreModelling().getName() + " isMapped=" + isMapped);
+         logger.fine("Did not find call target: " + _methodEntry + " in " + getClassModel().getClassWeAreModelling().getName()
+               + " isMapped=" + isMapped);
       }
 
       if (target == null) {
@@ -881,17 +881,17 @@ class Entrypoint{
             }
          }
       }
-            
+
       // Search for static calls to other classes
       for (MethodModel m : calledMethods) {
          if (logger.isLoggable(Level.FINE)) {
             logger.fine("Searching for call target: " + _methodEntry + " in " + m.getName());
-         }         
+         }
          if (m.getMethod().getName().equals(_methodEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8())
-                 && m.getMethod().getDescriptor().equals(_methodEntry.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8())) {
+               && m.getMethod().getDescriptor().equals(_methodEntry.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8())) {
             if (logger.isLoggable(Level.FINE)) {
-               logger.fine("Found " + m.getMethod().getClassModel().getClassWeAreModelling().getName() + 
-            		   "." + m.getMethod().getName() + " " + m.getMethod().getDescriptor());
+               logger.fine("Found " + m.getMethod().getClassModel().getClassWeAreModelling().getName() + "."
+                     + m.getMethod().getName() + " " + m.getMethod().getDescriptor());
             }
             return m;
          }
diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/ExpressionList.java b/com.amd.aparapi/src/java/com/amd/aparapi/ExpressionList.java
index ac28e94473dad192ca09b000586112c33205fe79..7753c9bfc28c4a9765d71723da36c2d756fa5c71 100644
--- a/com.amd.aparapi/src/java/com/amd/aparapi/ExpressionList.java
+++ b/com.amd.aparapi/src/java/com/amd/aparapi/ExpressionList.java
@@ -491,23 +491,23 @@ class ExpressionList{
                            handled = true;
                         }
                      }
-                     if (!handled){
+                     if (!handled) {
                         // do{}while()_ do not require any previous instruction
-                       if (loopTop.getPrevExpr() ==null){
+                        if (loopTop.getPrevExpr() == null) {
                            throw new IllegalStateException("might be a dowhile with no provious expression");
-                         
-                        }else if (!(loopTop.getPrevExpr().isBranch() && loopTop.getPrevExpr().asBranch().isForwardUnconditional())){
-                           if (doesNotContainCompositeOrBranch(branchSet.getTarget().getRootExpr(), branchSet.getFirst().getPrevExpr())) {
+
+                        } else if (!(loopTop.getPrevExpr().isBranch() && loopTop.getPrevExpr().asBranch().isForwardUnconditional())) {
+                           if (doesNotContainCompositeOrBranch(branchSet.getTarget().getRootExpr(), branchSet.getFirst()
+                                 .getPrevExpr())) {
                               loopTop = loopTop.getPrevExpr();
-                               branchSet.unhook();
+                              branchSet.unhook();
                               addAsComposites(ByteCode.COMPOSITE_DO_WHILE, loopTop, branchSet);
                               handled = true;
                            }
-                        }else{
+                        } else {
                            throw new IllegalStateException("might be mistaken for a do while!");
                         }
-                    
-                         
+
                      }
                   }
                }
diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/InstructionSet.java b/com.amd.aparapi/src/java/com/amd/aparapi/InstructionSet.java
index 573ee74062dc20c9cb3598239d02fdf3be9b49bd..9438959afbd10837c0af6d62bae25ee6f44538e3 100644
--- a/com.amd.aparapi/src/java/com/amd/aparapi/InstructionSet.java
+++ b/com.amd.aparapi/src/java/com/amd/aparapi/InstructionSet.java
@@ -602,7 +602,7 @@ class InstructionSet{
       COMPOSITE_IF, //
       COMPOSITE_IF_ELSE, //
       COMPOSITE_FOR_SUN, //
-      COMPOSITE_FOR_ECLIPSE,// 
+      COMPOSITE_FOR_ECLIPSE, // 
       COMPOSITE_ARBITRARY_SCOPE, //
       COMPOSITE_WHILE, //
       CLONE, //
@@ -613,7 +613,7 @@ class InstructionSet{
       FIELD_ARRAY_ELEMENT_INCREMENT, //
       FIELD_ARRAY_ELEMENT_ASSIGN, //
       HEAD, //
-      COMPOSITE_EMPTY_LOOP,//
+      COMPOSITE_EMPTY_LOOP, //
       COMPOSITE_DO_WHILE;
 
       private Class<?> clazz;
@@ -890,7 +890,7 @@ class InstructionSet{
 
       }
    }
-   
+
    static class CompositeDoWhileInstruction extends CompositeInstruction{
 
       protected CompositeDoWhileInstruction(MethodModel method, Instruction _firstChild, Instruction _lastChild,
diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/KernelRunner.java b/com.amd.aparapi/src/java/com/amd/aparapi/KernelRunner.java
index 171448abaad7b6e1282cb4860775cb5f805ec73d..aa39c8e9e8ed683b43e8bf039e38f2ca2952c49b 100644
--- a/com.amd.aparapi/src/java/com/amd/aparapi/KernelRunner.java
+++ b/com.amd.aparapi/src/java/com/amd/aparapi/KernelRunner.java
@@ -1356,40 +1356,40 @@ class KernelRunner{
    synchronized Kernel execute(String _entrypointName, final Range _range, final int _passes) {
 
       long executeStartTime = System.currentTimeMillis();
-      
+
       if (_range == null) {
          throw new IllegalStateException("range can't be null");
       }
-      
+
       /* for backward compatibility reasons we still honor execution mode */
       if (kernel.getExecutionMode().isOpenCL()) {
          // System.out.println("OpenCL");
 
          // See if user supplied a Device
          Device device = _range.getDevice();
-            
+
          if ((device == null) || (device instanceof OpenCLDevice)) {
             if (entryPoint == null) {
                try {
                   ClassModel classModel = null;
-                  if (Config.useAgent){
+                  if (Config.useAgent) {
                      classModel = new ClassModel(kernel.getClass(), OpenCLJNI.getJNI().getBytes(kernel.getClass().getName()));
-                  }else{
+                  } else {
                      classModel = new ClassModel(kernel.getClass());
                   }
                   entryPoint = classModel.getEntrypoint(_entrypointName, kernel);
                } catch (Exception exception) {
                   return warnFallBackAndExecute(_entrypointName, _range, _passes, exception);
                }
-               
+
                if ((entryPoint != null) && !entryPoint.shouldFallback()) {
                   synchronized (Kernel.class) { // This seems to be needed because of a race condition uncovered with issue #68 http://code.google.com/p/aparapi/issues/detail?id=68
                      if (device != null && !(device instanceof OpenCLDevice)) {
                         throw new IllegalStateException("range's device is not suitable for OpenCL ");
                      }
-                     
+
                      OpenCLDevice openCLDevice = (OpenCLDevice) device; // still might be null! 
-   
+
                      int jniFlags = 0;
                      if (openCLDevice == null) {
                         if (kernel.getExecutionMode().equals(EXECUTION_MODE.GPU)) {
@@ -1415,7 +1415,7 @@ class KernelRunner{
                            jniFlags |= JNI_FLAG_USE_GPU; // this flag might be redundant now. 
                         }
                      }
-   
+
                      //  jniFlags |= (Config.enableProfiling ? JNI_FLAG_ENABLE_PROFILING : 0);
                      //  jniFlags |= (Config.enableProfilingCSV ? JNI_FLAG_ENABLE_PROFILING_CSV | JNI_FLAG_ENABLE_PROFILING : 0);
                      //  jniFlags |= (Config.enableVerboseJNI ? JNI_FLAG_ENABLE_VERBOSE_JNI : 0);
@@ -1423,67 +1423,67 @@ class KernelRunner{
                      // jniFlags |= (kernel.getExecutionMode().equals(EXECUTION_MODE.GPU) ? JNI_FLAG_USE_GPU : 0);
                      // Init the device to check capabilities before emitting the
                      // code that requires the capabilities.
-   
+
                      // synchronized(Kernel.class){
                      jniContextHandle = initJNI(kernel, openCLDevice, jniFlags); // openCLDevice will not be null here
                   } // end of synchronized! issue 68
-                  
+
                   if (jniContextHandle == 0) {
                      return warnFallBackAndExecute(_entrypointName, _range, _passes, "initJNI failed to return a valid handle");
                   }
-   
+
                   String extensions = getExtensionsJNI(jniContextHandle);
                   capabilitiesSet = new HashSet<String>();
-                  
+
                   StringTokenizer strTok = new StringTokenizer(extensions);
                   while (strTok.hasMoreTokens()) {
                      capabilitiesSet.add(strTok.nextToken());
                   }
-                  
+
                   if (logger.isLoggable(Level.FINE)) {
                      logger.fine("Capabilities initialized to :" + capabilitiesSet.toString());
                   }
-   
+
                   if (entryPoint.requiresDoublePragma() && !hasFP64Support()) {
                      return warnFallBackAndExecute(_entrypointName, _range, _passes, "FP64 required but not supported");
                   }
-   
+
                   if (entryPoint.requiresByteAddressableStorePragma() && !hasByteAddressableStoreSupport()) {
                      return warnFallBackAndExecute(_entrypointName, _range, _passes,
                            "Byte addressable stores required but not supported");
                   }
-   
+
                   boolean all32AtomicsAvailable = hasGlobalInt32BaseAtomicsSupport() && hasGlobalInt32ExtendedAtomicsSupport()
                         && hasLocalInt32BaseAtomicsSupport() && hasLocalInt32ExtendedAtomicsSupport();
-   
+
                   if (entryPoint.requiresAtomic32Pragma() && !all32AtomicsAvailable) {
-   
+
                      return warnFallBackAndExecute(_entrypointName, _range, _passes, "32 bit Atomics required but not supported");
                   }
-   
+
                   String openCL = null;
                   try {
                      openCL = KernelWriter.writeToString(entryPoint);
                   } catch (CodeGenException codeGenException) {
                      return warnFallBackAndExecute(_entrypointName, _range, _passes, codeGenException);
                   }
-   
+
                   if (Config.enableShowGeneratedOpenCL) {
                      System.out.println(openCL);
                   }
-                  
+
                   if (logger.isLoggable(Level.INFO)) {
                      logger.info(openCL);
                   }
-   
+
                   // Send the string to OpenCL to compile it
                   if (buildProgramJNI(jniContextHandle, openCL) == 0) {
                      return warnFallBackAndExecute(_entrypointName, _range, _passes, "OpenCL compile failed");
                   }
-   
+
                   args = new KernelArg[entryPoint.getReferencedFields().size()];
                   int i = 0;
-   
+
                   for (Field field : entryPoint.getReferencedFields()) {
                      try {
                         field.setAccessible(true);
@@ -1493,7 +1493,7 @@ class KernelRunner{
                         if ((field.getModifiers() & Modifier.STATIC) == Modifier.STATIC) {
                            args[i].type |= ARG_STATIC;
                         }
-   
+
                         Class<?> type = field.getType();
                         if (type.isArray()) {
                            if (field.getAnnotation(com.amd.aparapi.Kernel.Local.class) != null
@@ -1505,14 +1505,14 @@ class KernelRunner{
                            } else {
                               args[i].type |= ARG_GLOBAL;
                            }
-                           
+
                            args[i].array = null; // will get updated in updateKernelArrayRefs
                            args[i].type |= ARG_ARRAY;
-                           
+
                            if (isExplicit()) {
                               args[i].type |= ARG_EXPLICIT;
                            }
-                           
+
                            // for now, treat all write arrays as read-write, see bugzilla issue 4859
                            // we might come up with a better solution later
                            args[i].type |= entryPoint.getArrayFieldAssignments().contains(field.getName()) ? (ARG_WRITE | ARG_READ)
@@ -1520,27 +1520,27 @@ class KernelRunner{
                            args[i].type |= entryPoint.getArrayFieldAccesses().contains(field.getName()) ? ARG_READ : 0;
                            // args[i].type |= ARG_GLOBAL;
                            args[i].type |= type.isAssignableFrom(float[].class) ? ARG_FLOAT : 0;
-   
+
                            args[i].type |= type.isAssignableFrom(int[].class) ? ARG_INT : 0;
-   
+
                            args[i].type |= type.isAssignableFrom(boolean[].class) ? ARG_BOOLEAN : 0;
-   
+
                            args[i].type |= type.isAssignableFrom(byte[].class) ? ARG_BYTE : 0;
-   
+
                            args[i].type |= type.isAssignableFrom(char[].class) ? ARG_CHAR : 0;
-   
+
                            args[i].type |= type.isAssignableFrom(double[].class) ? ARG_DOUBLE : 0;
-   
+
                            args[i].type |= type.isAssignableFrom(long[].class) ? ARG_LONG : 0;
-   
+
                            args[i].type |= type.isAssignableFrom(short[].class) ? ARG_SHORT : 0;
-   
+
                            // arrays whose length is used will have an int arg holding
                            // the length as a kernel param
                            if (entryPoint.getArrayFieldArrayLengthUsed().contains(args[i].name)) {
                               args[i].type |= ARG_ARRAYLENGTH;
                            }
-                           
+
                            if (type.getName().startsWith("[L")) {
                               args[i].type |= (ARG_OBJ_ARRAY_STRUCT | ARG_WRITE | ARG_READ);
                               if (logger.isLoggable(Level.FINE)) {
@@ -1576,29 +1576,29 @@ class KernelRunner{
                      } catch (IllegalArgumentException e) {
                         e.printStackTrace();
                      }
-   
+
                      args[i].primitiveSize = ((args[i].type & ARG_FLOAT) != 0 ? 4 : (args[i].type & ARG_INT) != 0 ? 4
                            : (args[i].type & ARG_BYTE) != 0 ? 1 : (args[i].type & ARG_CHAR) != 0 ? 2
                                  : (args[i].type & ARG_BOOLEAN) != 0 ? 1 : (args[i].type & ARG_SHORT) != 0 ? 2
                                        : (args[i].type & ARG_LONG) != 0 ? 8 : (args[i].type & ARG_DOUBLE) != 0 ? 8 : 0);
-   
+
                      if (logger.isLoggable(Level.FINE)) {
                         logger.fine("arg " + i + ", " + args[i].name + ", type=" + Integer.toHexString(args[i].type)
                               + ", primitiveSize=" + args[i].primitiveSize);
                      }
-   
+
                      i++;
                   }
-   
+
                   // at this point, i = the actual used number of arguments
                   // (private buffers do not get treated as arguments)
-   
+
                   argc = i;
-   
+
                   setArgsJNI(jniContextHandle, args, argc);
-   
+
                   conversionTime = System.currentTimeMillis() - executeStartTime;
-   
+
                   try {
                      executeOpenCL(_entrypointName, _range, _passes);
                   } catch (final AparapiException e) {
@@ -1615,16 +1615,17 @@ class KernelRunner{
                }
             }
          } else {
-              warnFallBackAndExecute(_entrypointName, _range, _passes, "OpenCL was requested but Device supplied was not an OpenCLDevice");
+            warnFallBackAndExecute(_entrypointName, _range, _passes,
+                  "OpenCL was requested but Device supplied was not an OpenCLDevice");
          }
       } else {
          executeJava(_range, _passes);
       }
-      
+
       if (Config.enableExecutionModeReporting) {
          System.out.println(kernel.getClass().getCanonicalName() + ":" + kernel.getExecutionMode());
       }
-      
+
       executionTime = System.currentTimeMillis() - executeStartTime;
       accumulatedExecutionTime += executionTime;
 
diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/KernelWriter.java b/com.amd.aparapi/src/java/com/amd/aparapi/KernelWriter.java
index 2f6ff442d5c5820c7839d4667055dffe815a0337..838bff7a2acddeed7dc97d9f393c53db0a9c2c89 100644
--- a/com.amd.aparapi/src/java/com/amd/aparapi/KernelWriter.java
+++ b/com.amd.aparapi/src/java/com/amd/aparapi/KernelWriter.java
@@ -223,8 +223,8 @@ abstract class KernelWriter extends BlockWriter{
                write(m.getName());
             } else {
                // Must be a library call like rsqrt
-               assert isMapped : _methodEntry + " should be mapped method!"; 
-            	
+               assert isMapped : _methodEntry + " should be mapped method!";
+
                write(methodName);
                isIntrinsic = true;
             }
diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/OpenCLJNI.java b/com.amd.aparapi/src/java/com/amd/aparapi/OpenCLJNI.java
index fbb6acd7b0b38a9cc94211e1b75a27430f52dc05..b9d477b04a965a92386f74e187f77e17dff14174 100644
--- a/com.amd.aparapi/src/java/com/amd/aparapi/OpenCLJNI.java
+++ b/com.amd.aparapi/src/java/com/amd/aparapi/OpenCLJNI.java
@@ -8,10 +8,10 @@ public class OpenCLJNI{
 
    static boolean openCLAvailable = false;
    static {
-      if (Config.useAgent){
+      if (Config.useAgent) {
          logger.fine("Using agent!");
          openCLAvailable = true;
-      }else{
+      } else {
          String arch = System.getProperty("os.arch");
          logger.fine("arch = " + arch);
          String aparapiLibraryName = null;
@@ -34,7 +34,7 @@ public class OpenCLJNI{
                      .println("Check your environment. Failed to load aparapi native library "
                            + aparapiLibraryName
                            + " or possibly failed to locate opencl native library (opencl.dll/opencl.so). Ensure that both are in your PATH (windows) or in LD_LIBRARY_PATH (linux).");
-   
+
             }
          }
       }