Index: suds/bindings/document.py =================================================================== --- suds/bindings/document.py (revision 710) +++ suds/bindings/document.py (working copy) @@ -60,6 +60,10 @@ else: value = kwargs.get(pd[0]) n += 1 + # XXX: Not sure if this goes here + if pd[2] and value is None: + # skip non-existing by-choice kwargs + continue p = self.mkparam(method, pd, value) if p is None: continue @@ -123,13 +127,7 @@ for child, ancestry in resolved: if child.isattr(): continue - if self.bychoice(ancestry): - log.debug( - '%s\ncontained by , excluded as param for %s()', - child, - method.name) - continue - result.append((child.name, child)) + result.append((child.name, child, self.bychoice(ancestry))) return result def returned_types(self, method): @@ -157,4 +155,4 @@ for x in ancestry: if x.choice(): return True - return False \ No newline at end of file + return False