diff --git a/management/download/index.php b/management/download/index.php
index 9fd91a7..84d8797 100755
--- a/management/download/index.php
+++ b/management/download/index.php
@@ -23,7 +23,7 @@
 	$pageKeywords	= "Eclipse, EclipseRT, Gemini, OSGi, Management, Documentation";
 	$pageAuthor		= "Christopher Frost";
 
-	$geminiManagementVersions = array("1.0.3.RELEASE", "1.0.2.RELEASE", "1.0.1.RELEASE", "1.0.0.RELEASE");
+	$geminiManagementVersions = array("1.0.5RELEASE", "1.0.4.RELEASE", "1.0.3.RELEASE", "1.0.2.RELEASE", "1.0.1.RELEASE", "1.0.0.RELEASE");
 
 	ob_start();
 ?>
diff --git a/management/download/release-notes/1.0.4.RELEASE.html b/management/download/release-notes/1.0.4.RELEASE.html
new file mode 100644
index 0000000..1f53418
--- /dev/null
+++ b/management/download/release-notes/1.0.4.RELEASE.html
@@ -0,0 +1,48 @@
+<?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) 2009 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: Christopher Frost
+ *    
+ *******************************************************************************/
+
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle 		= "Gemini Web - Release Notes";
+	$pageKeywords	= "Eclipse, EclipseRT, Gemini, Management, OSGi, Downloads";
+	$pageAuthor		= "Christopher Frost";
+		
+	ob_start();
+?>
+
+<div id="midcolumn">
+
+	<h3>1.0.4.RELEASE - Release Notes</h3>
+	
+	<p>
+		This is a minor bug fix of Gemini Management. Fixed the incorrect fragment/host information when listing bundles. 
+	</p>
+	<p>
+		For a full list of bugs please see 
+		<a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;classification=RT;product=Gemini.Management;target_milestone=1.0.4.RELEASE" 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/management/download/release-notes/1.0.5.RELEASE.html b/management/download/release-notes/1.0.5.RELEASE.html
new file mode 100644
index 0000000..5e20254
--- /dev/null
+++ b/management/download/release-notes/1.0.5.RELEASE.html
@@ -0,0 +1,48 @@
+<?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) 2009 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: Christopher Frost
+ *    
+ *******************************************************************************/
+
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle 		= "Gemini Web - Release Notes";
+	$pageKeywords	= "Eclipse, EclipseRT, Gemini, Management, OSGi, Downloads";
+	$pageAuthor		= "Christopher Frost";
+		
+	ob_start();
+?>
+
+<div id="midcolumn">
+
+	<h3>1.0.5.RELEASE - Release Notes</h3>
+	
+	<p>
+		This is a minor bug fix of Gemini Management. Assorted improvements to protect against NPS with Fragments and/or unresolved bundles. 
+	</p>
+	<p>
+		For a full list of bugs please see 
+		<a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;classification=RT;product=Gemini.Management;target_milestone=1.0.5.RELEASE" 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
