Enhanced to call disconnect().