Unmerge #1476 and #1444

In that order. #1476 was an attempt to salvage the functionality, but
@wchen-r7 found some more bugs. So, undoing that attempt, and 
undoing #1444 as well.

First, do no harm. It's obvious we cannot be making sweeping changes in
libraries like this without a minimum of testing available. #1478 starts
to address that, by the way.

FixRM #7752