This looks incorrect- we should not check original type for equality.