# Apache TomEE 1.5.1 Released!

>We are excited to announce the release of <a href="http://tomee.apache.org/downloads.html">Apache TomEE 1.5.1</a>.
The volume of feedback on the 1.5.1 Final drove such an impressive number of fixes and improvements into TomEE
[the changes](tomee-1.5.1-release-notes.html).

We'd like to thank everyone who gave feedback and contributed to improve Apache TomEE on a daily basis!
