diff --git a/download/release-notes/3.0.0.M01.php b/download/release-notes/3.0.0.M01.php
index 6a5e819..8d3ea31 100755
--- a/download/release-notes/3.0.0.M01.php
+++ b/download/release-notes/3.0.0.M01.php
@@ -8,7 +8,7 @@
 	include($App->getProjectCommon());
 	
 /*******************************************************************************
- * Copyright (c) 2015 Eclipse Foundation and others.
+ * Copyright (c) 2015, 2017 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
@@ -52,6 +52,8 @@
 	<li>javax.servlet.jsp 2.2.0.v201112011158 -> 2.3.0</li>
 </ul>
 
+<p>A full list of bugs included in this milestone is available <a href="https://bugs.eclipse.org/bugs/buglist.cgi?list_id=2407161;classification=RT;query_format=advanced;component=unknown;target_milestone=3.0.0.M01;product=Gemini.Web" target="_self">here</a>.</p>
+
 </div>
 
 <?
diff --git a/download/release-notes/3.0.0.RC1.php b/download/release-notes/3.0.0.RC1.php
index 1386d2c..0bbe840 100755
--- a/download/release-notes/3.0.0.RC1.php
+++ b/download/release-notes/3.0.0.RC1.php
@@ -8,7 +8,7 @@
 	include($App->getProjectCommon());
 
 /*******************************************************************************
- * Copyright (c) 2015 Eclipse Foundation and others.
+ * Copyright (c) 2015, 2017 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
@@ -45,6 +45,8 @@
 	<li>org.eclipse.jdt.core.compiler.batch 3.10.0.v20140902-0626 -> 3.11.0.v20150602-1242</li>
 </ul>
 
+<p>A full list of bugs included in this milestone is available <a href="https://bugs.eclipse.org/bugs/buglist.cgi?list_id=2407161;classification=RT;query_format=advanced;component=unknown;target_milestone=3.0.0.RC1;product=Gemini.Web" target="_self">here</a>.</p>
+
 </div>
 
 <?
diff --git a/download/release-notes/3.0.0.RC2.php b/download/release-notes/3.0.0.RC2.php
index a10ff1b..d9bef57 100755
--- a/download/release-notes/3.0.0.RC2.php
+++ b/download/release-notes/3.0.0.RC2.php
@@ -8,7 +8,7 @@
 	include($App->getProjectCommon());
 
 /*******************************************************************************
- * Copyright (c) 2016 Eclipse Foundation and others.
+ * Copyright (c) 2016, 2017 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
@@ -43,6 +43,8 @@
 	<li>All Apache Tomcat bundles 8.0.21 -> 8.5.5</li>
 </ul>
 
+<p>A full list of bugs included in this milestone is available <a href="https://bugs.eclipse.org/bugs/buglist.cgi?list_id=2407161;classification=RT;query_format=advanced;component=unknown;target_milestone=3.0.0.RC2;product=Gemini.Web" target="_self">here</a>.</p>
+
 </div>
 
 <?
diff --git a/download/release-notes/3.0.0.RC3.php b/download/release-notes/3.0.0.RC3.php
new file mode 100644
index 0000000..6206c92
--- /dev/null
+++ b/download/release-notes/3.0.0.RC3.php
@@ -0,0 +1,54 @@
+<?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) 2017 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: Violeta Georgieva
+ *
+ *******************************************************************************/
+
+	# Begin: page-specific settings.  Change these.
+	$pageTitle 		= "Gemini Web - Release Notes";
+	$pageKeywords	= "Eclipse, EclipseRT, Virgo, OSGi, Downloads";
+	$pageAuthor		= "Violeta Georgieva";
+
+	ob_start();
+?>
+
+<div id="midcolumn">
+
+<h3>3.0.0.RC3 - Release Notes</h3>
+
+<h4>Notable improvements:</h4>
+
+<ul>
+	<li>Integration for JASPIC 1.1.</li>
+</ul>
+<p><p>
+<h4>Migration from Gemini Web 3.0.0.RC2 to Gemini Web 3.0.0.RC3</h4>
+<p>
+<p>New bundles</p>
+<ul>
+	<li>org.eclipse.gemini.web.jaspic.fragment -> 3.0.0.RC3</li>
+</ul>
+
+<p>A full list of bugs included in this milestone is available <a href="https://bugs.eclipse.org/bugs/buglist.cgi?list_id=2407161;classification=RT;query_format=advanced;component=unknown;target_milestone=RC3;product=Gemini.Web" target="_self">here</a>.</p>
+
+</div>
+
+<?
+	$html = ob_get_clean();
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
\ No newline at end of file
diff --git a/download/release-notes/3.0.0.RC4.php b/download/release-notes/3.0.0.RC4.php
new file mode 100644
index 0000000..47b507b
--- /dev/null
+++ b/download/release-notes/3.0.0.RC4.php
@@ -0,0 +1,41 @@
+<?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) 2017 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: Violeta Georgieva
+ *
+ *******************************************************************************/
+
+	# Begin: page-specific settings.  Change these.
+	$pageTitle 		= "Gemini Web - Release Notes";
+	$pageKeywords	= "Eclipse, EclipseRT, Virgo, OSGi, Downloads";
+	$pageAuthor		= "Violeta Georgieva";
+
+	ob_start();
+?>
+
+<div id="midcolumn">
+
+<h3>3.0.0.RC4 - Release Notes</h3>
+
+<p>A full list of bugs included in this milestone is available <a href="https://bugs.eclipse.org/bugs/buglist.cgi?list_id=2407161;classification=RT;query_format=advanced;component=unknown;target_milestone=3.0.0.RC4;product=Gemini.Web" target="_self">here</a>.</p>
+
+</div>
+
+<?
+	$html = ob_get_clean();
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
\ No newline at end of file
diff --git a/download/release-notes/3.0.0.RC5.php b/download/release-notes/3.0.0.RC5.php
new file mode 100644
index 0000000..c664a97
--- /dev/null
+++ b/download/release-notes/3.0.0.RC5.php
@@ -0,0 +1,41 @@
+<?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) 2017 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: Violeta Georgieva
+ *
+ *******************************************************************************/
+
+	# Begin: page-specific settings.  Change these.
+	$pageTitle 		= "Gemini Web - Release Notes";
+	$pageKeywords	= "Eclipse, EclipseRT, Virgo, OSGi, Downloads";
+	$pageAuthor		= "Violeta Georgieva";
+
+	ob_start();
+?>
+
+<div id="midcolumn">
+
+<h3>3.0.0.RC5 - Release Notes</h3>
+
+<p>A full list of bugs included in this milestone is available <a href="https://bugs.eclipse.org/bugs/buglist.cgi?list_id=2407161;classification=RT;query_format=advanced;component=unknown;target_milestone=3.0.0.RC5;product=Gemini.Web" target="_self">here</a>.</p>
+
+</div>
+
+<?
+	$html = ob_get_clean();
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
\ No newline at end of file
diff --git a/download/release-notes/3.0.0.RC6.php b/download/release-notes/3.0.0.RC6.php
new file mode 100644
index 0000000..ff6e4fe
--- /dev/null
+++ b/download/release-notes/3.0.0.RC6.php
@@ -0,0 +1,54 @@
+<?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) 2017 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: Violeta Georgieva
+ *
+ *******************************************************************************/
+
+	# Begin: page-specific settings.  Change these.
+	$pageTitle 		= "Gemini Web - Release Notes";
+	$pageKeywords	= "Eclipse, EclipseRT, Virgo, OSGi, Downloads";
+	$pageAuthor		= "Violeta Georgieva";
+
+	ob_start();
+?>
+
+<div id="midcolumn">
+
+<h3>3.0.0.RC6 - Release Notes</h3>
+
+<h4>Notable improvements:</h4>
+
+<ul>
+	<li>Embedded Apache Tomcat version 8.5.11.</li>
+</ul>
+<p><p>
+<h4>Migration from Gemini Web 3.0.0.RC5 to Gemini Web 3.0.0.RC6</h4>
+<p>
+<p>Bundles with changed version</p>
+<ul>
+	<li>All Apache Tomcat bundles 8.5.5 -> 8.5.11</li>
+</ul>
+
+<p>A full list of bugs included in this milestone is available <a href="https://bugs.eclipse.org/bugs/buglist.cgi?list_id=2407161;classification=RT;query_format=advanced;component=unknown;target_milestone=3.0.0.RC6;product=Gemini.Web" target="_self">here</a>.</p>
+
+</div>
+
+<?
+	$html = ob_get_clean();
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
\ No newline at end of file
