diff -u --strip-trailing-cr setup/package_db.cc setup-new/package_db.cc
--- setup/package_db.cc	2005-10-14 05:10:26.000000000 +0100
+++ setup-new/package_db.cc	2006-03-06 13:35:31.279477400 +0000
@@ -399,9 +399,16 @@
 #endif
 }
 
+void 
+packagedb::addFromCmdLine ()
+{
+  for_each(packages.begin(), packages.end(), mem_fun(&packagemeta::addToCategoryBase));
+}
+
 void
 packagedb::fillMissingCategory ()
 {
+  for_each(packages.begin(), packages.end(), visit_if(mem_fun(&packagemeta::addToCategoryBase), mem_fun(&packagemeta::isManuallyWanted)));
   for_each(packages.begin(), packages.end(), visit_if(mem_fun(&packagemeta::setDefaultCategories), mem_fun(&packagemeta::hasNoCategories)));
   for_each(packages.begin(), packages.end(), mem_fun(&packagemeta::addToCategoryAll));
 }
diff -u --strip-trailing-cr setup/package_db.h setup-new/package_db.h
--- setup/package_db.h	2003-07-29 11:07:22.000000000 +0100
+++ setup-new/package_db.h	2006-03-06 13:38:21.148123000 +0000
@@ -47,6 +47,7 @@
   PackageDBConnectedIterator connectedEnd();
   void fillMissingCategory();
   void markUnVisited();
+  void addFromCmdLine();
   void setExistence();
   /* all seen binary packages */
   static std::vector < packagemeta *> packages;
diff -u --strip-trailing-cr setup/package_meta.cc setup-new/package_meta.cc
--- setup/package_meta.cc	2005-09-11 15:45:54.000000000 +0100
+++ setup-new/package_meta.cc	2006-03-06 15:02:16.480086200 +0000
@@ -43,6 +43,7 @@
 #include "script.h"
 
 #include "package_version.h"
+#include "getopt++/StringOption.h"
 #include "cygpackage.h"
 #include "package_db.h"
 
@@ -53,6 +54,8 @@
 
 /*****************/
 
+static StringOption PackageOption ("", 'p', "package", "Packages to include");
+
 const
   packagemeta::_actions
 packagemeta::Default_action (0);
@@ -654,6 +657,25 @@
   return categories.size() == 0;
 }
 
+bool
+packagemeta::isManuallyWanted() const
+{  
+  string packages_option = PackageOption;
+  string tname;
+  /* Split the packages listed in the option up */
+  string::size_type loc = packages_option.find( ",", 0 );
+  bool breturn=false;
+  while ( loc != string::npos ) {
+    tname=packages_option.substr(0,loc);
+    packages_option=packages_option.substr(loc+1);
+    breturn = breturn || (name.compare(tname)==0);
+    loc = packages_option.find( ",", 0 );
+  }
+  /* At this point, no "," exists */
+  breturn=breturn || (name.compare(packages_option)==0);
+  return breturn;
+}
+
 void
 packagemeta::setDefaultCategories()
 {
@@ -665,3 +687,9 @@
 {
   add_category ("All");
 }
+
+void
+packagemeta::addToCategoryBase()
+{
+  add_category ("Base");
+}
diff -u --strip-trailing-cr setup/package_meta.h setup-new/package_meta.h
--- setup/package_meta.h	2005-05-03 22:55:08.000000000 +0100
+++ setup-new/package_meta.h	2006-03-06 13:37:39.642747800 +0000
@@ -54,8 +54,10 @@
   void visited(bool const &);
   bool visited() const;
   bool hasNoCategories() const;
+  bool isManuallyWanted() const;
   void setDefaultCategories();
   void addToCategoryAll();
+  void addToCategoryBase();
 
   class _actions
   {
diff -u --strip-trailing-cr setup/setup_version.c setup-new/setup_version.c
--- setup/setup_version.c	2006-03-06 12:24:59.154337800 +0000
+++ setup-new/setup_version.c	2006-03-06 13:05:52.788225000 +0000
@@ -1,3 +1,3 @@
 #define VERSION_PREFIX "%%% setup-version"
-static const char version_store[] = VERSION_PREFIX " 2.524";
+static const char version_store[] = VERSION_PREFIX " 2.524RFL";
 const char *setup_version = version_store + sizeof (VERSION_PREFIX);
diff -u --strip-trailing-cr setup/state.cc setup-new/state.cc
--- setup/state.cc	2005-05-04 15:52:34.000000000 +0100
+++ setup-new/state.cc	2006-03-06 14:27:05.103281400 +0000
@@ -23,6 +23,7 @@
 #include "state.h"
 
 bool unattended_mode;
+String packages_option;
 
 int source;
 
diff -u --strip-trailing-cr setup/state.h setup-new/state.h
--- setup/state.h	2005-05-04 15:52:34.000000000 +0100
+++ setup-new/state.h	2006-03-06 14:26:55.125727000 +0000
@@ -33,6 +33,8 @@
 
 extern bool unattended_mode;
 
+extern String packages_option;
+
 extern int source;
 
 extern String local_dir;
