CopyPropagator throws NullPointerException if a local is undefined: int defCount = ((Integer) localToDefCount.get(m)).intValue(); if(defCount == 0) throw new RuntimeException("Variable " + m + " used without definition!"); But localToDefCount is never initialized to zero, so the nicely useful RuntimeException is never thrown. Steve