This reverts commit 5e9cd128ad, reversing changes made to 1f4e6759a7. Tomek found some serious issues.
5e9cd128ad
1f4e6759a7