function DOMtreeforeach_tail(node, fun) {

    return (function sub(_node, _fun, _from_below) {

        if (! _from_below) { // _fun is called one and only one time per node
            _fun(_node);
            if (_node.firstChild)  return sub(_node.firstChild,  _fun, false);
        }

        if (_node.nextSibling)     return sub(_node.nextSibling, _fun, false);          
        if (_node.parentNode)      return sub(_node.parentNode,  _fun, true);

        return;
        
    })(node, fun, false);

}
