Many people contribute to the GCJ project, and in many different
capacities.  Any omissions to this list are accidental.  Feel free to
contact green@cygnus.com if you have been left out or some of your
contributions are not listed.  Please keep this list in alphabetical
order.

Godmar Back for his improvements and encouragement.
Scott Bambrough for help porting the compiler.
Jon Beniston for his Win32 port.
Geoff Berry for his object serialization work and various patches.
Hans-J. Boehm for his garbage collector, IA-64 libffi port, and other work.
Per Bothner for dreaming up, designing and implementing much of gcj.
Joerg Brunsmann for compiler hacking and help with the FAQ.
Glenn Chambers for help with the FAQ.
Steve Chamberlain for config fixes and the picoJava port.
John-Marc Chandonia for various library patches.
Eric Christopher for his porting help and clean-ups.
The GNU Classpath project for all of their merged runtime code.
Mo DeJong for gcj and libgcj bug fixes.
The GCC project contributors for all of their great compiler work.
Ivan Fontes Garcia for the Portugese translation of the FAQ.
Anthony Green for various contributions.
Stu Grossman for gdb hacking, allowing us to debug our code.
Andrew Haley for his amazing compiler and library efforts.
Jakub Jelinek for improving the build system.
Oskar Liljeblad for hacking on AWT and his many bug reports and patches.
Bryce McKinlay for numerous gcj and libgcj fixes and improvements.
Jason Molenda for establishing the project infrastructure 
	on sources.redhat.com.
Mike Moreton for his various patches.
Alexandre Oliva for all of this porting and testing efforts.
Kresten Krab Thorup for his fantastic bytecode interpreter.
Warren Levy for his tremendous library work.
All of the Mauve project contributors, for test code.
Rainer Orth for configuration clean-ups and porting help.
Alexandre Petit-Bianco for implementing much of the compiler, 
	and continued maintainership.
Rolf W. Rasmussen for hacking on AWT.
Bradley Schatz for his work on the FAQ.
Jason Schroeder for jcf-dump patches.
John Stracke for his HTTP protocol fixes.
Jeff Sturm for porting help, bug fixes, and encouragement.
Tom Tromey for his many contributions and libgcj maintainership.
Matt Welsh for help with Linux Threads.
Urban Widmark for help fixing java.io.
Gilles Zunino for help porting to Irix.

We'd also like to thank the folks who have contributed time and energy
in testing GCJ:

Michael Abd-El-Malek 
Thomas Arend
Bonzo Armstrong
Steven Ashe 
Chris Baldwin
David Billinghurst
Jim Blandy
Stephane Bortzmeyer
Frank Braun
Sidney Cadot
Bradford Castalia
Ralph Doncaster
Richard Emberson
Graham Fawcett
Robert A. French
Mark K. Gardner
Charles-Antoine Gauthier
Simon Gornall
Fred Gray
John Griffin
Phil Hargett
Bryan W. Headley
Kevin B. Hendricks
Patrik Hagglund
Amancio Hasty 
Joep Jansen
David Kidd
Tobias Kuipers
Anand Krishnaswamy
H.J. Lu
Jesse Macnish
Anon A. Mous
Stefan Morrell
Pekka Nikander
Jon Olson
Magnus Persson
Chris Pollard
Paul Reilly
Tom Reilly
Torsten Rueger
Danny Sadinoff
Marc Schifer
Franz Sirl
Tim Souder
Adam Sulmicki 
Frederik Warg 
Gregory Warnes
Mark Wielaard
David E. Young

Thank you all!
