def callLater(self, when, what, *a, **kw):
dc =  base.DelayedCall(self.seconds() + when,<EOL>what, a, kw,<EOL>self.calls.remove,<EOL>lambda c: None,<EOL>self.seconds)<EOL>self.calls.append(dc)<EOL>self.calls.sort(lambda a, b: cmp(a.getTime(), b.getTime()))<EOL>return dc<EOL>
Copied from twisted.internet.task.Clock, r20480.  Fixes the bug
where the wrong DelayedCall would sometimes be returned.