diff --git a/doc/released/README-196.html b/doc/released/README-196.html
new file mode 100644
index 0000000..e853488
--- /dev/null
+++ b/doc/released/README-196.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html> <head>
+<title>AspectJ 1.9.6 Readme</title>
+<style type="text/css">
+<!--
+  P   { margin-left:  20px; }
+  PRE { margin-left:  20px; }
+  LI  { margin-left:  20px; }
+  H4  { margin-left:  20px; }
+  H3  { margin-left:  10px; }
+-->
+</style>
+</head>
+
+<body>
+<div align="right"><small>
+&copy; Copyright 2020 Contributors.
+All rights reserved.
+</small></div>
+<h1>AspectJ 1.9.6</h1>
+<p>The full list of resolved issues in 1.9.6 is available 
+<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&f0=OP&f1=OP&f3=CP&f4=CP&j1=OR&list_id=16866879&product=AspectJ&query_format=advanced&target_milestone=1.9.6">here</a></h2>.</p>
+
+<p>AspectJ 1.9.6 supports Java14. Java14 introduces records, but you must activate support for that via 
+an <tt>--enable-preview</tt> flag when using the compiler and attempting to run the resultant classes:
+
+Here is <tt>Code.java</tt>:
+<pre><code>
+=======8<=========
+public record Person(String firstName, String lastName, int age) {}
+=======8<=========
+
+=======8<=========
+public class UsingPersonRecord {
+  public static void main(String[] argv) {
+    Person p = new Person("A","B",99);
+    System.out.println(p);
+    System.out.println(p.firstName());
+  }
+}
+=======8<=========
+
+=======8<=========
+public aspect TraceRecordComponents {
+  before(): execution(public * *()) {
+    System.out.println(thisJoinPointStaticPart);
+  }
+}
+=======8<=========
+</code></pre>
+
+<p>Compile it with:
+<pre><code>
+$ ajc --enable-preview -14 Person.java UsingPersonRecord.java TraceRecordComponents.java
+</code></pre>
+
+<p>Now run it:
+<pre><code>
+$ java --enable-preview UsingPersonRecord
+execution(String Person.toString())
+Person[firstName=A, lastName=B, age=99]
+execution(String Person.firstName())
+A
+</code></pre>
+
+<p>Available: 1.9.6 available 22-Jul-2020</p>
+
+<br><br>
+
+
+<!-- ============================== -->  
+</body>
+</html>
diff --git a/downloads.php b/downloads.php
index d12d7e1..f2d9cd1 100644
--- a/downloads.php
+++ b/downloads.php
@@ -159,13 +159,13 @@
   <h3 id="stable_release">Latest Stable Release</h3>
   <ul>
     <li>
-    <b>AspectJ 1.9.5, Released 28 Nov 2019</b>
+    <b>AspectJ 1.9.6, Released 22 Jul 2020</b>
  	<table border="0" cellspacing="0" cellpadding="0" width="100%">
     <tr>
       <td><ul>AspectJ compiler, browser, documentation tool, Ant tasks, and documentation.</ul></td>
       <td width="30%" align="right">
-          <a href="http://www.eclipse.org/downloads/download.php?file=/tools/aspectj/aspectj-1.9.5.jar">aspectj-1.9.5.jar</a> (~17M)<br>
-          <a href="http://www.eclipse.org/downloads/download.php?file=/tools/aspectj/aspectj-1.9.5-src.jar">aspectj-1.9.5-src.jar</a>
+          <a href="http://www.eclipse.org/downloads/download.php?file=/tools/aspectj/aspectj-1.9.6.jar">aspectj-1.9.6.jar</a> (~17M)<br>
+          <a href="http://www.eclipse.org/downloads/download.php?file=/tools/aspectj/aspectj-1.9.6-src.jar">aspectj-1.9.6-src.jar</a>
       </td>
     </tr>
     </table>
@@ -177,6 +177,24 @@
   <!-- ============ ASPECTJ MILESTONES -->
   
 <div class="homeitem3col">
+<h3 id="milestones">AspectJ 9</h3>
+<ul>
+<li>
+<b>AspectJ 1.9.5, Released 28 Nov 2019</b>
+<table border="0" cellspacing="0" cellpadding="0" width="100%">
+<tr>
+  <td><ul>AspectJ compiler, browser, documentation tool, Ant tasks, and documentation.</ul></td>
+  <td width="30%" align="right">
+      <a href="http://www.eclipse.org/downloads/download.php?file=/tools/aspectj/aspectj-1.9.5.jar">aspectj-1.9.5.jar</a> (~17M)<br>
+      <a href="http://www.eclipse.org/downloads/download.php?file=/tools/aspectj/aspectj-1.9.5-src.jar">aspectj-1.9.5-src.jar</a>
+  </td>
+</tr>
+</table>
+</li>
+</ul>
+</div> 
+
+<div class="homeitem3col">
   <h3 id="milestones">AspectJ 9</h3>
 <ul>
   <li>
diff --git a/index.php b/index.php
index ba87c5d..ad5996f 100644
--- a/index.php
+++ b/index.php
@@ -87,6 +87,12 @@
 		<div class="homeitem">
 			<h3>News and Events</h3>
  
+      <li>AspectJ 1.9.6 is <a href="downloads.php">available for download</a>.
+      See the <a href="doc/released/README-196.html">readme</a>
+      for more information.
+      <br><div align="right"><span class="dates"><i>posted 22-Jul-2020</i></span></div>
+      </li> 
+      
       <li>AspectJ 1.9.5 is <a href="downloads.php">available for download</a>.
       See the <a href="doc/released/README-195.html">readme</a>
       for more information.
