diff --git a/support_eclipse/_projectCommon.php b/support_eclipse/_projectCommon.php
deleted file mode 100644
index 9919953..0000000
--- a/support_eclipse/_projectCommon.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-	# Set the theme for your project's web pages.
-	# See the Committer Tools "How Do I" for list of themes
-	# https://dev.eclipse.org/committers/
-	# Optional: defaults to system theme
-	$theme = NULL;
-	$App->Promotion = TRUE;
-	//$App->ExtraHtmlHeaders = '<link rel="stylesheet" type="text/css" href="/equinox/equinox.css">';
-	# Define your project-wide Nav bars here.
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# these are optional
-	$Nav->setLinkList( array() );
-	$Nav->addNavSeparator("Support Eclipse", "/membership/support_eclipse/");
-	$Nav->addCustomNav("Home", "/membership/support_eclipse/", "_self", 1);
-	$Nav->addCustomNav("How to Support", "/support_eclipse/support.php", "_self", 1);
-
-?>
\ No newline at end of file
diff --git a/support_eclipse/cisco120.gif b/support_eclipse/cisco120.gif
deleted file mode 100644
index 9693798..0000000
--- a/support_eclipse/cisco120.gif
+++ /dev/null
Binary files differ
diff --git a/support_eclipse/eads120.png b/support_eclipse/eads120.png
deleted file mode 100644
index 7f7a41a..0000000
--- a/support_eclipse/eads120.png
+++ /dev/null
Binary files differ
diff --git a/support_eclipse/index.php b/support_eclipse/index.php
deleted file mode 100644
index 7a0eadf..0000000
--- a/support_eclipse/index.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?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();	$theme = NULL; include($App->getProjectCommon());   # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	# index.php
-	#
-	# Author: 	 	Nathan Gervais
-	# Date:			2008-04-21
-	#
-	# Description: Ganymede Landing Page
-	#
-	#****************************************************************************
-	#
-	# Begin: page-specific settings.  Change these.
-	$pageTitle 		= "Support Eclipse Foundation";
-	$pageKeywords	= "Support eclipse foundation membership";
-	$pageAuthor		= "Eclipse Foundation, Inc.";
-
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank)
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self");
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank");
-
-	# End: page-specific settings
-	#
-	# Place your html content in a file called content/en_pagename.php
-	ob_start();
-
-
-	?>
-	<div id="fullcolumn" class="galileo">
-
-		<div id="midcolumn">
-			<div id="banner">
-				<img src='support.png'/>
-			</div>
-			<p class="description">
-			The Eclipse Foundation relies on the support from our millions-strong user community to grow our open source ecosystem.
-</P>
-			<div class="homeitem">
-				<div class="block">
-					<div class="image">
-						<a href="http://wiki.eclipse.org/images/c/ca/Eclipse_foundation_about_us.pdf"><img src="http://dev.eclipse.org/huge_icons/apps/preferences-system-network-proxy.png"/></a>
-					</div>
-					<div class="text">
-						<h4><a href="http://wiki.eclipse.org/images/c/ca/Eclipse_foundation_about_us.pdf">About the Eclipse Foundation</a></h4>
-						<p>About the Eclipse Foundation. (PDF)</p>
-					</div>
-				</div>
-
-
-				<div class="block">
-					<div class="image">
-						<a href="http://wiki.eclipse.org/images/f/f5/Eclipse_membership.pdf"><img src="http://dev.eclipse.org/huge_icons/categories/applications-internet.png"/></a>
-					</div>
-					<div class="text">
-						<h4><a href="http://wiki.eclipse.org/images/f/f5/Eclipse_membership.pdf">Joining the Eclipse Foundation</a></h4>
-						<p>More about joining the Eclipse Foundation. (PDF)</p>
-					</div>
-				</div>
-
-				<div class="block">
-					<div class="image">
-						<a href="./support.php"><img src="http://dev.eclipse.org/huge_icons/emblems/emblem-favorite.png"/></a>
-					</div>
-					<div class="text">
-						<h4><a href="./support.php">Call to Action!  Support Eclipse!</a></h4>
-						<p>Details on how your Organization can support Eclipse today.</p>
-					</div>
-				</div>
-
-
-			</div>
-		</div>
-
-<? include("./rightcolumn.php"); ?>
-
-
-		</div>
-
-
-
-	<?
-	$html = ob_get_clean();
-	# Generate the web page
-	$App->Promotion = TRUE;
-	$App->AddExtraHtmlHeader('<link type="text/css" href="style.css" rel="stylesheet"/>');
-	$App->generatePage(NULL, $Menu, NULL, $pageAuthor, $pageKeywords, $pageTitle, $html);
-?>
\ No newline at end of file
diff --git a/support_eclipse/pdf-logo.gif b/support_eclipse/pdf-logo.gif
deleted file mode 100644
index 1ba5cea..0000000
--- a/support_eclipse/pdf-logo.gif
+++ /dev/null
Binary files differ
diff --git a/support_eclipse/rightcolumn.php b/support_eclipse/rightcolumn.php
deleted file mode 100644
index 896e816..0000000
--- a/support_eclipse/rightcolumn.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-
-	$supporters = array (
-		'<img src="cisco120.gif"/>',
-		'<img src="eads120.png"/>',
-		'<img src="rim120.png"/>',
-		'<img src="siemens.gif"/>'
-
-		);
-	shuffle($supporters);
-
-?>
-
-			<div id="rightcolumn">
-			<p class="description">Some of our supporters...</p>
-
-<?
-	foreach ($supporters as $p) {
-		echo '<div class="sideitem">';
-			echo $p;
-		echo '</div>';
-	}
-
-?>
-
-			<div class="sideitem" style="text-align:left;">
-			More About Our Supporters:
-			<div class="modal noBG">
-				<ul>
-					<li class="">
-					<a href="/membership/exploreMembership.php#allmembers" class="link">Member Supporters</a><br/>
-					</li>
-
-					<li class="">
-					<a href="/corporate_sponsors/" class="link">Corporate Sponsors</a><br/>
-					</li>
-
-					<li class="">
-					<a href="http://eclipse.org/donate/donorlist.php" class="link">Individual Supporters</a><br/>
-					</li>
-				</ul>
-			</div>
-		</div>
-
-<? ?>
diff --git a/support_eclipse/rim120.png b/support_eclipse/rim120.png
deleted file mode 100644
index ed135ff..0000000
--- a/support_eclipse/rim120.png
+++ /dev/null
Binary files differ
diff --git a/support_eclipse/siemens.gif b/support_eclipse/siemens.gif
deleted file mode 100644
index cc86a73..0000000
--- a/support_eclipse/siemens.gif
+++ /dev/null
Binary files differ
diff --git a/support_eclipse/style.css b/support_eclipse/style.css
deleted file mode 100644
index e4253bb..0000000
--- a/support_eclipse/style.css
+++ /dev/null
@@ -1,38 +0,0 @@
-@CHARSET "ISO-8859-1";
-
-#banner {
-	text-align:center;
-	width:100%;
-	margin-bottom:20px;
-}
-
-.homeitem { padding-top:10px; }
-
-.sideitem { text-align:center; }
-
-.block {
-	float:left;
-	width:100%;
-	padding-left:75px
-}
-
-.block .image {
-	width:75px;
-	float:left;
-	margin-bottom:15px;
-}
-
-.block .text {
-	float:left;
-}
-
-.description {
-	padding:0 75px;
-	text-align:center;
-	font-weight:bold;
-	font-size:14px;
-}
-
-.description:first-letter {
-	font-size:24px;
-}
\ No newline at end of file
diff --git a/support_eclipse/support.php b/support_eclipse/support.php
deleted file mode 100644
index b666034..0000000
--- a/support_eclipse/support.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?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();	$theme = NULL; include($App->getProjectCommon());   # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	# index.php
-	#
-	# Author: 	 	Ian Skerrett
-	# Date:			2008-06-18
-	#
-	# Description: Pulsar Support Page
-	#
-	#****************************************************************************
-	#
-	# Begin: page-specific settings.  Change these.
-	$pageTitle 		= "Support Eclipse";
-	$pageKeywords	= "eclipse membership";
-	$pageAuthor		= "Eclipse Foundation, Inc.";
-
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank)
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self");
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank");
-
-	# End: page-specific settings
-	#
-
-	# Place your html content in a file called content/en_pagename.php
-	ob_start();
-	?>
-	<div id="midcolumn">
-
-
-
-			<h1>Support Eclipse</h1>
-			<p>There are three simple ways you can financially support the Eclipse Foundation. Choose whichever
-			way is best for you, and please do not hesitate to <a href="mailto:membership@eclipse.org">contact us.</a></p>
-
-
-			<h2>1 - Become an Associate Member</h2>
-			<ul>
-				<li>What are the benefits of becoming an Associate Member?</li>
-				<p>The key benefit is supporting the infrastructure that brings you
-				<a href="http://wiki.eclipse.org/images/c/ca/Eclipse_foundation_about_us.pdf">great open source software</a>!
-				In addition to that, we'll put you on the inside track of information about the Eclipse Ecosystem,
-				invite you to members' meetings, and give you discounts to Foundation events &mdash; and your
-				staff will appreciate knowing you support free software too. If you would like more
-				benefits, such as help promoting your products and
-				services to the Eclipse Ecosystem, voting rights, and board representation, consider
-				<a href="http://www.eclipse.org/membership/become_a_member/" target="_blank">other membership options</a>.
-				</p>
-				<li>How do I become an Associate Member?</li>
-				<p>It's easy &mdash; just complete and fax these three documents listed on our
-				<a href="http://www.eclipse.org/membership/become_a_member/membershipProcess.php">Membership Page</a>.
-				It really is quite simple. One
-				doc is simply for your contact information. Another doc says it's ok for us to post your logo
-				(and vice versa). The third doc has a lot of stuff relevant to other membership
-				classes; for Associate Membership, it basically says that you agree to support the Foundation and
-				we agree to invite you to the members' meetings and events.</p>
-				<li>How much is Associate Membership?</li>
-				<p>The minimum contribution is $5,000 USD per year. If it's more convenient for you, we can break that
-				into quarterly payments.</p>
-
-			</ul>
-
-			<h2>2 - Be a Corporate Sponsor</h2>
-			<p>
-				If Associate Membership isn't your style, there are other ways to financially support the
-				Eclipse Foundation by being a
-				<a href="/corporate_sponsors/">corporate sponsor</a>.
-				Please <a href="mailto:membership@eclipse.org">contact us</a> to discuss additional
-				options including:
-				<ul>
-				<li>Being a logo sponsor of Eclipse Foundation events</li>
-				<li>Being a corporate sponsor for some of our <a href="http://www.eclipse.org/org/foundation/thankyou.php">infrastructure</a></li>
-				<li>Simply making a cash contribution</li>
-				</ul>
-			</p>
-
-			<h2>3 - Become a Friend of Eclipse</h2>
-			<p>
-				If having your organization become a member or sponsor isn't in the cards, and you still want to show
-				support for the Eclipse Foundation, consider personally becoming a
-				<a href="http://eclipse.org/donate/index.php">Friend of Eclipse</a>.
-
-				<br><br><br>
-
-			</p>
-	</div>
-
-	<? include("./rightcolumn.php"); ?>
-
-
-	<?
-	$html = ob_get_clean();
-	# Generate the web page
-	$App->Promotion = TRUE;
-	$App->AddExtraHtmlHeader('<link type="text/css" href="style.css" rel="stylesheet"/>');
-	$App->generatePage(NULL, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
-?>
diff --git a/support_eclipse/support.png b/support_eclipse/support.png
deleted file mode 100644
index 3827afc..0000000
--- a/support_eclipse/support.png
+++ /dev/null
Binary files differ
diff --git a/support_eclipse/supporters.gif b/support_eclipse/supporters.gif
deleted file mode 100644
index b4a2799..0000000
--- a/support_eclipse/supporters.gif
+++ /dev/null
Binary files differ
