Imagen incorrecta aparece en mis filas ListView

Yo uso este código en mi 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;
}

El problema es al desplazarse; a veces se muestra la imagen correcta, pero a veces al desplazarse hacia atrás / adelante, las imágenes se muestran al azar y eso no está asociado con la fila.

Las imágenes se descargan de la web.

¿Cómo debo resolver este problema?

Respuestas a la pregunta(3)

Su respuesta a la pregunta