Here is a revised patch that removes an erroneous section that was experimental.