bool addArgumentsAPTGet(std::vector<CommandLine::Args> &Args, char const * const Cmd)/*{{{*/
  {
     if (CmdMatches("install", "remove", "purge", "upgrade", "dist-upgrade",
-           "deselect-upgrade", "autoremove"))
+           "dselect-upgrade", "autoremove"))
     {
        addArg(0, "dpkg-progress", "DpkgPM::Progress", 0);
        addArg('f', "fix-broken", "APT::Get::Fix-Broken", 0);
        addArg(0, "solver", "APT::Solver", CommandLine::HasArg);
        if (CmdMatches("upgrade"))
        {
 -       addArg(0, "allow-new", "APT::Get::UpgradeAllowNew", 0);
 +         addArg(0, "new-pkgs", "APT::Get::Upgrade-Allow-New", 
 +                CommandLine::Boolean);
        }
     }
     else if (CmdMatches("update"))
 
  /* Intelligent upgrader that will install and remove packages at will */
  bool DoDistUpgrade(CommandLine &CmdL)
  {
-    if (CmdL.FileSize() != 1)
-       return _error->Error(_("The dist-upgrade command takes no arguments"));
- 
     CacheFile Cache;
     if (Cache.OpenForInstall() == false || Cache.CheckDeps() == false)
        return false;
        return false;
     }
     
+    // parse additional cmdline pkg manipulation switches
+    if(!DoCacheManipulationFromCommandLine(CmdL, Cache))
+       return false;
+ 
     c0out << _("Done") << endl;
     
     return InstallPackages(Cache,true);
  
  bool DoUpgrade(CommandLine &CmdL)
  {
 -   if (_config->FindB("APT::Get::UpgradeAllowNew", false) == true)
 +   if (_config->FindB("APT::Get::Upgrade-Allow-New", false) == true)
        return DoUpgradeWithAllowNewPackages(CmdL);
     else
        return DoUpgradeNoNewPackages(CmdL);