If you try to connect a the output of MapNode to a DataSink, it crashes when it tries to do os.path manipulation on the input and gets a list. DataSink itself can't be a MapNode (I don't think -- because it assigns the iterfield before the dynamic input traits are created) so it's impossible to save the output of certain (lots) of nodes.