diff -r e90ded50986b checkers/base.py
--- a/checkers/base.py	Wed Apr 08 09:17:35 2009 +0200
+++ b/checkers/base.py	Tue May 12 17:49:17 2009 -0500
@@ -376,25 +376,29 @@
         # call (in the lambda they appear in the args.args list and are
         # indicated as * and ** by two bits in the lambda's flags, but
         # in the function call they are omitted from the args list and
         # are indicated by separate attributes on the function call node).
         ordinary_args = list(node.args.args)
         if node.args.kwarg:
             if (not call.kwargs
                 or not isinstance(call.kwargs, astng.Name)
                 or node.args.kwarg != call.kwargs.name):
                 return
+        elif call.kwargs:
+            return
         if node.args.vararg:
             if (not call.starargs
                 or not isinstance(call.starargs, astng.Name)
                 or node.args.vararg != call.starargs.name):
                 return
+        elif call.starargs:
+            return
 
         # The "ordinary" arguments must be in a correspondence such that:
         # ordinary_args[i].name == call.args[i].name.
         if len(ordinary_args) != len(call.args):
             return
         for i in xrange(len(ordinary_args)):
             if not isinstance(call.args[i], astng.Name):
                 return
             if node.args.args[i].name != call.args[i].name:
                 return
@@ -603,11 +607,10 @@
     def _check_required_attributes(self, node, attributes):
         """check for required attributes"""
         for attr in attributes:
             if not node.has_key(attr):
                 self.add_message('C0121', node=node, args=attr)
 
     
 def register(linter):
     """required method to auto register this checker"""
     linter.register_checker(BasicChecker(linter))
-
diff -r e90ded50986b test/input/func_w0108.py
--- a/test/input/func_w0108.py	Wed Apr 08 09:17:35 2009 +0200
+++ b/test/input/func_w0108.py	Tue May 12 17:49:17 2009 -0500
@@ -27,11 +27,14 @@
 _ = lambda x, y: range(x, 5)
 _ = lambda x, y, z: x.y(z)
 _ = lambda: 5
 _ = lambda **kwargs: _ANYARGS()
 _ = lambda **kwargs: _ANYARGS(**dict([('three', 3)]))
 _ = lambda **kwargs: _ANYARGS(**{'three': 3})
 _ = lambda dict_arg, **kwargs: _ANYARGS(kwargs, **dict_arg)
 _ = lambda *args: _ANYARGS()
 _ = lambda *args: _ANYARGS(*list([3, 4]))
 _ = lambda *args: _ANYARGS(*[3, 4])
-_ = lambda list_arg, *args: _ANYARGS(args, *list_arg)
\ No newline at end of file
+_ = lambda list_arg, *args: _ANYARGS(args, *list_arg)
+_ = lambda: _ANYARGS(*[3])
+_ = lambda: _ANYARGS(**{'three': 3})
+_ = lambda: _ANYARGS(*[3], **{'three': 3})
