Initial patch by Anton Barkovsky, refined a bit by me to further subdivide the test methods. Provides tests for the previous two bug fix commits.