for verb in ('setattr', 'do', 'doafter'):
             for task, tok_names in [t for t in ret['_tasks'].items()
                                     if t[0].verb == verb]:
-                node: Any = self
-                for step in task.path:
+                path = list(task.path)
+                node: Any = (ret[path.pop(0)]
+                             if task.path and path[0].isupper() else self)
+                for step in path:
                     key = ret[step] if step.isupper() else step
                     node = (node[key] if isinstance(node, Dict)
                             else (node(key) if callable(node)
         elif ret['_verb'] == 'PONG':
             assert self._expected_pong == ret['reply']
             self._expected_pong = ''
-        elif ret['_verb'] == 'QUIT':
-            ret['quitter'].quit(ret['message'])
 
 
 ClientsDb = dict[str, Client]
 
 
     _MsgParseExpectation(
         'QUIT',
-        (_MsgTok.NICK_USER_HOST, ':quitter'),
-        ((_MsgTok.ANY, ':message'),)),
+        (_MsgTok.NICK_USER_HOST, ':QUITTER'),
+        ((_MsgTok.ANY, 'do_QUITTER.quit:message'),)),
 ]