I've noticed several more issues with the kawa.jar that I produced by manually changing gnu/expr/Mangle.java: when I try to run the terminal version of GRASP, I get a bunch of warnings like: "no declaration seen for shift-left" "no declaration seen for shift-top" etc. Those identifiers are names of fields in a superclass. The superclass in this case is CharPainter: https://github.com/panicz/grasp-android/blob/master/stages/retreat/GRASP/src/text-painter.scm#L16 I use a "define-object" macro which - rather trivially - expands to "define-class": https://github.com/panicz/grasp-android/blob/master/stages/retreat/GRASP/src/define-object.scm (define-object (ClassName constructor-args ...)::Interface (define name :: type value) (define (method args ...) ...) (SuperClass super-constructor-args ...) init-code ...) expands to something like (define-class ClassName (Interface SuperClass) (name :: type init: value) ((method args ...) ...) ((*init* constructor-args ...) (invoke-special SuperClass (this) '*init super-constructor-args ...) init-code ...)) (and it certainly worked with the previous kawa.jar) Anyway, it seems that the code of the subclass is unable to see the slots defined in its parent class. I suspect that this might have something to do with mangling/unmangling. I will try to verify this tomorrow by replacing the identifiers like shift-left with something more like shiftLeft to see if that helps.