A imagem errada aparece nas minhas linhas do ListView

Eu uso esse código no meu getView:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;
    if (v == null) {

        LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(R.layout.listrow, null);
    }
    Order o = items.get(position);

    if (o != null) {
        TextView tt = (TextView) v.findViewById(R.id.toptext);
        ImageView thumb = (ImageView) v.findViewById(R.id.icon);

        if (o.getOrderDrawable() != null) {
            thumb.setImageDrawable(o.getOrderDrawable());
        } else {
            tt.setText(o.getOrderTitle());
        }

    }
    return v;
}

O problema é ao rolar; às vezes a imagem correta é exibida, mas às vezes ao rolar para trás / para frente, as imagens são exibidas aleatoriamente e isso não está associado à linha.

As imagens são baixadas da web.

Como devo resolver este problema?

questionAnswers(3)

yourAnswerToTheQuestion