efunctions updates

sync with upstream, fix for eend