anchor.diff:        return args;
       }
   
  +    //TODO(pquitslund): replace w/ the following once library skew issues are sorted out
  +    //return args.where((arg) => !arg.startsWith('--') ||
  +    //  _knownFlags.contains(arg.substring(2)));
  +
       // Filter all unrecognized flags and options.
  -    return args.where((arg) => !arg.startsWith('--') ||
  -        _knownFlags.contains(arg.substring(2)));
  +    var filtered = <String>[];
  +    for (var i=0; i < args.length; ++i) {
  +      var arg = args[i];
  +      if (arg.startsWith('--') && arg.length > 2) {
  +        if (!_knownFlags.contains(arg.substring(2))) {
  +          //"eat" params by advancing to the next flag/option
  +          i = _getNextFlagIndex(args, i);
  +        } else {
  +          filtered.add(arg);
  +        }
  +      } else {
  +        filtered.add(arg);
  +      }
  +    }
   
  +    return filtered;
  +  }
  +
  +  _getNextFlagIndex(args, i) {
  +    for ( ; i < args.length; ++i) {
  +      if (args[i].startsWith('--')) {
  +        return i;
  +      }
  +    }
  +    return i;
     }
   
   }
  
positive.code:         allowMultiple: allowMultiple);
    }
  
    /**
     * Generates a string displaying usage information for the defined options.
     *
  
negative.code:     : _knownFlags = <String>[],
        _parser = new ArgParser();
  
  
    /**
     * Defines a flag.
     *
  