Upstream Merge from rev 56 fully working