diff --git a/doc/released/README-193.html b/doc/released/README-193.html
index 6bcf89e..e67421f 100644
--- a/doc/released/README-193.html
+++ b/doc/released/README-193.html
@@ -14,13 +14,83 @@
 
 <body>
 <div align="right"><small>
-&copy; Copyright 2018 Contributors.
+&copy; Copyright 2019 Contributors.
 All rights reserved.
 </small></div>
 <p>The full list of resolved issues in 1.9.3 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.3">here</a></h2>.</p>
 
-<p>Available: 1.9.3.RC1 available 7-Mar-2019</p>
+<p>AspectJ 1.9.3 supports Java12. Java12 introduces the new switch expression syntax, 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>Switch3.java</tt>:
+<pre><code>
+=========8<=========
+public class Switch3 {
+	public static void main(String[] argv) {
+		System.out.println(one(Color.R));
+		System.out.println(one(Color.G));
+		System.out.println(one(Color.B));
+		System.out.println(one(Color.Y));
+	}
+
+	public static int one(Color color) {
+		int result = switch(color) {
+		 case R -> foo(0);
+		 case G -> foo(1);
+		 case B -> foo(2);
+		 default -> foo(3);
+		};
+		return result;
+	}
+	
+	public static final int foo(int i) {
+		return i+1;
+	}
+}
+
+enum Color {
+	R, G, B, Y;
+}
+
+aspect X {
+	int around(): call(* foo(..)) {
+		return proceed()*3;
+	}
+}
+=========8<=========
+</code></pre>
+<p>
+Compile it with:
+<pre><code>
+$ ajc --enable-preview -showWeaveInfo -12 Switch3.java
+
+Join point 'method-call(int Switch3.foo(int))' in Type 'Switch3' (Switch3.java:12) advised by around advice from 'X' (Switch3.java:30)
+
+Join point 'method-call(int Switch3.foo(int))' in Type 'Switch3' (Switch3.java:13) advised by around advice from 'X' (Switch3.java:30)
+
+Join point 'method-call(int Switch3.foo(int))' in Type 'Switch3' (Switch3.java:14) advised by around advice from 'X' (Switch3.java:30)
+
+Join point 'method-call(int Switch3.foo(int))' in Type 'Switch3' (Switch3.java:15) advised by around advice from 'X' (Switch3.java:30)
+
+</code></pre>
+<p>
+Now run it:
+<pre><code>
+$ java --enable-preview Switch3
+3
+6
+9
+12
+</code></pre>
+
+
+<p>
+<p>Available:</p>
+<ul>
+<li>1.9.3 on 4-Apr-2019</p>
+<li>1.9.3.RC1 on 7-Mar-2019</p>
+</ul>
 
 <br><br>
 
diff --git a/downloads.php b/downloads.php
index 7960515..eb1d69b 100644
--- a/downloads.php
+++ b/downloads.php
@@ -159,6 +159,25 @@
   <h3 id="stable_release">Latest Stable Release</h3>
   <ul>
     <li>
+    <b>AspectJ 1.9.3, Released 4 Apr 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.3.jar">aspectj-1.9.3.jar</a> (~17M)<br>
+          <a href="http://www.eclipse.org/downloads/download.php?file=/tools/aspectj/aspectj-1.9.3-src.jar">aspectj-1.9.3-src.jar</a>
+      </td>
+    </tr>
+    </table>
+  </li>
+  </ul>
+</div>
+
+  <!-- ============ ASPECTJ MILESTONES -->
+  <div class="homeitem3col">
+  <h3 id="milestones">AspectJ 9</h3>
+  <ul>
+    <li>
     <b>AspectJ 1.9.3.RC1, Released 7 Mar 2019</b>
  	<table border="0" cellspacing="0" cellpadding="0" width="100%">
     <tr>
@@ -171,11 +190,6 @@
     </table>
   </li>
   </ul>
-</div>
-
-  <!-- ============ ASPECTJ MILESTONES -->
-  <div class="homeitem3col">
-  <h3 id="milestones">AspectJ 9</h3>
   <ul>
     <li>
     <b>AspectJ 1.9.2, Released 24 Oct 2018</b>
diff --git a/index.php b/index.php
index b7d4f40..a84e61e 100644
--- a/index.php
+++ b/index.php
@@ -87,6 +87,12 @@
 		<div class="homeitem">
 			<h3>News and Events</h3>
 
+<li>AspectJ 1.9.3 is <a href="downloads.php">available for download</a>.
+See the <a href="doc/released/README-193.html">readme</a>
+for more information.
+<br><div align="right"><span class="dates"><i>posted 4-Apr-19</i></span></div>
+</li>
+
 <li>AspectJ 1.9.3.RC1 is <a href="downloads.php">available for download</a>.
 See the <a href="doc/released/README-193.html">readme</a>
 for more information.
