diff --git a/download/milestones.php b/download/milestones.php
index 70a8606..84bcc6f 100644
--- a/download/milestones.php
+++ b/download/milestones.php
@@ -23,7 +23,7 @@
 	$pageKeywords	= "Eclipse, EclipseRT, Virgo, OSGi, Milestones, Builds, Downloads";
 	$pageAuthor		= "Glyn Normington";
 		
-	$virgoVersions = array("3.7.0.M01");
+	$virgoVersions = array("3.7.0.M02", "3.7.0.M01");
 	ob_start();
 ?>
 
@@ -55,23 +55,37 @@
 		$snaps = true;
 		foreach ($virgoVersions as $version){
 			echo "<h4><a href='#'>$version";
+			if($version == '3.7.0.M02'){
+				$nano = false;
+				$snaps = false;
+				$documentation = false;
+				$update = false;
+			}
 			if ($first) {
 				echo " - Latest</a></h4>";
 			} else {
 				echo "</a></h4>";
 			}
-			
+
 			echo "<div>";
 			echo "	<ul>";
 			echo "		<li><a href='http://www.eclipse.org/virgo/download/release-notes/$version.php' target='_self'>View Release Notes</a></li>";
 			echo "		<li><strong>Virgo Server for Apache Tomcat</strong> -  <a href='http://www.eclipse.org/downloads/download.php?file=/virgo/milestone/VP/$version/virgo-tomcat-server-$version.zip' target='_self'>Download</a></li>";
 	    	echo "		<li><strong>Virgo Jetty Server</strong> -  <a href='http://www.eclipse.org/downloads/download.php?file=/virgo/milestone/VP/$version/virgo-jetty-server-$version.zip' target='_self'>Download</a> </li>";
 			echo "		<li><strong>Virgo Kernel</strong> - <a href='http://www.eclipse.org/downloads/download.php?file=/virgo/milestone/VP/$version/virgo-kernel-$version.zip' target='_self'>Download</a></li>";
+			if($nano){
 			echo "		<li><strong>Virgo Nano</strong> - <a href='http://www.eclipse.org/downloads/download.php?file=/virgo/milestone/VP/$version/virgo-nano-$version.zip' target='_self'>Download</a></li>";
 			echo "		<li><strong>Virgo Nano Web</strong> - <a href='http://www.eclipse.org/downloads/download.php?file=/virgo/milestone/VP/$version/virgo-nano-full-$version.zip' target='_self'>Download</a></li>";
-			echo "		<li><strong>Virgo Snaps</strong> - <a href='http://www.eclipse.org/downloads/download.php?file=/virgo/milestone/VS/$version/snaps-$version.zip' target='_self'>Download</a></li>";
-			echo "    	<li><strong>Virgo Documentation</strong> - <a href='http://www.eclipse.org/downloads/download.php?file=/virgo/milestone/VD/$version/virgo-documentation-$version.zip'>Download</a>";
-			echo "		<li><strong>Virgo Update Site</strong> - <a href='http://download.eclipse.org/virgo/updatesite/$version' target='_self'>http://download.eclipse.org/virgo/updatesite/$version</a></li>";
+            }
+			if($snaps){
+			     echo "		<li><strong>Virgo Snaps</strong> - <a href='http://www.eclipse.org/downloads/download.php?file=/virgo/milestone/VS/$version/snaps-$version.zip' target='_self'>Download</a></li>";
+            }
+			if($documentation){
+                echo "    	<li><strong>Virgo Documentation</strong> - <a href='http://www.eclipse.org/downloads/download.php?file=/virgo/milestone/VD/$version/virgo-documentation-$version.zip'>Download</a>";
+            }
+            if($update){
+            echo "		<li><strong>Virgo Update Site</strong> - <a href='http://download.eclipse.org/virgo/updatesite/$version' target='_self'>http://download.eclipse.org/virgo/updatesite/$version</a></li>";
+            }
 			echo "	</ul>";
 			echo "</div>";
 			$first = false;
diff --git a/download/release-notes/3.7.0.M02.php b/download/release-notes/3.7.0.M02.php
new file mode 100644
index 0000000..be730e8
--- /dev/null
+++ b/download/release-notes/3.7.0.M02.php
@@ -0,0 +1,53 @@
+<?php
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	
+	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	
+	$App 	= new App();	
+	$Nav	= new Nav();	
+	$Menu 	= new Menu();		
+	include($App->getProjectCommon());
+	
+/*******************************************************************************
+ * Copyright (c) 2016 Eclipse Foundation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Florian Waibel
+ *    
+ *******************************************************************************/
+
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle 		= "Virgo - Release Notes";
+	$pageKeywords	= "Eclipse, EclipseRT, Virgo, OSGi, Downloads";
+	$pageAuthor		= "Florian Waibel";
+
+	ob_start();
+?>
+
+<div id="midcolumn">
+
+<h3>3.7.0.M02 - Release Notes</h3>
+
+<p>
+This is the second milestone of the <a href="http://wiki.eclipse.org/Virgo/Future#Release_Branding">Steel</a> (3.7.0) release of Virgo.
+It contains the following upgrades/changes:
+<ul>
+    <li>Spring Framework 4.2.1.RELEASE</li>
+    <li>Switch to Gradle Build</li>
+</ul>
+</p>
+
+<h4>Enhancements and Fixes</h4>
+<p>A full list of bugs and enhancements included in this release is available <a href="https://bugs.eclipse.org/bugs/buglist.cgi?list_id=5139738&classification=RT&query_format=advanced&target_milestone=3.7.0.M02&product=Virgo" target="_self">here</a>.</p>
+
+</div>
+
+
+<?
+	$html = ob_get_clean();
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
+
