diff --git a/tomcat-uidm/RELEASE-NOTES b/tomcat-uidm/RELEASE-NOTES
index f6ee931..99cea1c 100644
--- a/tomcat-uidm/RELEASE-NOTES
+++ b/tomcat-uidm/RELEASE-NOTES
@@ -16,15 +16,16 @@
 ================================================================================
 
 
-                     Apache Tomcat Version 6.0.41
+                     Apache Tomcat Version 7.0.77
                             Release Notes
 
 
-=============================
-KNOWN ISSUES IN THIS RELEASE:
-=============================
+=========
+CONTENTS:
+=========
 
 * Dependency Changes
+* API Stability
 * JNI Based Applications
 * Bundled APIs
 * Web application reloading and static fields in shared libraries
@@ -32,7 +33,6 @@
 * Enabling SSI and CGI Support
 * Security manager URLs
 * Symlinking static resources
-* Enabling invoker servlet
 * Viewing the Tomcat Change Log
 * Cryptographic software notice
 * When all else fails
@@ -41,17 +41,37 @@
 ===================
 Dependency Changes:
 ===================
-Tomcat 6.0 is designed to run on Java SE 5.0 and later.
+Tomcat 7.0 is designed to run on Java SE 6 and later.
 
-In addition, Tomcat 6.0 uses the Eclipse JDT Java compiler for compiling
-JSP pages.  This means you no longer need to have the complete
+In addition, Tomcat 7.0 uses the Eclipse JDT Java compiler for
+compiling JSP pages.  This means you no longer need to have the complete
 Java Development Kit (JDK) to run Tomcat, but a Java Runtime Environment
-(JRE) is sufficient.  The Eclipse JDT Java compiler is bundled with the 
+(JRE) is sufficient.  The Eclipse JDT Java compiler is bundled with the
 binary Tomcat distributions.  Tomcat can also be configured to use the
-compiler from the JDK to compile JSPs, or any other Java compiler supported 
+compiler from the JDK to compile JSPs, or any other Java compiler supported
 by Apache Ant.
 
 
+==============
+API Stability:
+==============
+The public interfaces for the following classes are fixed and will not be
+changed at all during the remaining lifetime of the 7.x series:
+- javax/**/*
+
+The public interfaces for the following classes may be added to in order to
+resolve bugs and/or add new features. No existing interface will be removed or
+changed although it may be deprecated.
+- org/apache/catalina/*
+- org/apache/catalina/comet/*
+
+Note: As Tomcat 7 matures, the above list will be added to. The list is not
+      considered complete at this time.
+
+The remaining classes are considered part of the Tomcat internals and may change
+without notice between point releases.
+
+
 =======================
 JNI Based Applications:
 =======================
@@ -76,28 +96,33 @@
 =============
 Bundled APIs:
 =============
-A standard installation of Tomcat 6.0 makes all of the following APIs available
+A standard installation of Tomcat 7.0 makes all of the following APIs available
 for use by web applications (by placing them in "lib"):
 * annotations-api.jar (Annotations package)
 * catalina.jar (Tomcat Catalina implementation)
 * catalina-ant.jar (Tomcat Catalina Ant tasks)
 * catalina-ha.jar (High availability package)
 * catalina-tribes.jar (Group communication)
-* ecj-@JDT_VERSION@.jar (Eclipse JDT Java compiler)
-* el-api.jar (EL 2.1 API)
+* ecj-4.4.2.jar (Eclipse JDT Java compiler)
+* el-api.jar (EL 2.2 API)
 * jasper.jar (Jasper 2 Compiler and Runtime)
 * jasper-el.jar (Jasper 2 EL implementation)
-* jsp-api.jar (JSP 2.1 API)
-* servlet-api.jar (Servlet 2.5 API)
+* jsp-api.jar (JSP 2.2 API)
+* servlet-api.jar (Servlet 3.0 API)
+* tomcat7-websocket.jar (WebSocket 1.1 implementation)
+* tomcat-api.jar (Interfaces shared by Catalina and Jasper)
 * tomcat-coyote.jar (Tomcat connectors and utility classes)
 * tomcat-dbcp.jar (package renamed database connection pool based on Commons DBCP)
+* tomcat-jdbc.jar (Tomcat's database connection pooling solution)
+* tomcat-util.jar (Various utilities)
+* websocket-api.jar (WebSocket 1.1 API)
 
 You can make additional APIs available to all of your web applications by
 putting unpacked classes into a "classes" directory (not created by default),
 or by placing them in JAR files in the "lib" directory.
 
 To override the XML parser implementation or interfaces, use the endorsed
-mechanism of the JVM. The default configuration defines JARs located in 
+mechanism of the JVM. The default configuration defines JARs located in
 "endorsed" as endorsed.
 
 
@@ -164,59 +189,32 @@
 the check.
 
 
-=========================
-Enabling invoker servlet:
-=========================
-Starting with Tomcat 4.1.12, the invoker servlet is no longer available by
-default in all webapps. Enabling it for all webapps is possible by editing
-$CATALINA_HOME/conf/web.xml to uncomment the "/servlet/*" servlet-mapping
-definition.
-
-Using the invoker servlet in a production environment is not recommended and
-is unsupported.  More details are available on the Tomcat FAQ at
-http://tomcat.apache.org/faq/misc.html#invoker.
-
-
 ==============================
 Viewing the Tomcat Change Log:
 ==============================
 See changelog.html in this directory.
 
 
-============================================
-Multi-byte charset handling bug in Java 1.5:
-============================================
-Public versions of Sun/Oracle Java 1.5 are known to have a nasty bug in
-implementation of Charset.decode() method for certain character sets.
-
-For details, test and a list of affected character sets see:
-
-http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6196991
-https://issues.apache.org/bugzilla/show_bug.cgi?id=52579
-
-The UTF-8 charset is not affected by this issue.
-
-
 =============================
 Cryptographic software notice
 =============================
-This distribution includes cryptographic software.  The country in 
-which you currently reside may have restrictions on the import, 
-possession, use, and/or re-export to another country, of 
-encryption software.  BEFORE using any encryption software, please 
+This distribution includes cryptographic software.  The country in
+which you currently reside may have restrictions on the import,
+possession, use, and/or re-export to another country, of
+encryption software.  BEFORE using any encryption software, please
 check your country's laws, regulations and policies concerning the
-import, possession, or use, and re-export of encryption software, to 
+import, possession, or use, and re-export of encryption software, to
 see if this is permitted.  See <http://www.wassenaar.org/> for more
 information.
 
 The U.S. Government Department of Commerce, Bureau of Industry and
-Security (BIS), has classified this software as Export Commodity 
+Security (BIS), has classified this software as Export Commodity
 Control Number (ECCN) 5D002.C.1, which includes information security
 software using or performing cryptographic functions with asymmetric
 algorithms.  The form and manner of this Apache Software Foundation
 distribution makes it eligible for export under the License Exception
-ENC Technology Software Unrestricted (TSU) exception (see the BIS 
-Export Administration Regulations, Section 740.13) for both object 
+ENC Technology Software Unrestricted (TSU) exception (see the BIS
+Export Administration Regulations, Section 740.13) for both object
 code and source code.
 
 The following provides more details on the included cryptographic
