It's got something to do with two occurances of the object "Action" in the attached test vis: cagney@nettle$ gcj -d . -I . -C one/ExitNotificationObserver.java one/AddTaskObserverAction.java one/TaskAction.java one/ExitNotificationObserver.java: In class 'one.ExitNotificationObserver': one/ExitNotificationObserver.java: In constructor '()': one/ExitNotificationObserver.java:18: error: Can't find method ‘dontSaveObject()’ in type ‘one.TaskAction’. myAction.dontSaveObject(); ^ 1 error cagney@nettle$ gcj -d . -I . -C one/TaskAction.java one/ExitNotificationObserver.java one/AddTaskObserverAction.java cagney@nettle$ attachment follows -- Summary: gcj fails dependant on compiler order Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: java AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: cagney at redhat dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27985