¿Cómo hacer referencia al valor correcto de `i` en una devolución de llamada en un bucle?

Tengo este código:

for (var i = 0; i < result.length; i++) {
    // call a function that open a new "thread"
    myObject.geocode({ param1: "param" }, function(results, status) {
        alert(result.title[i]);
    });                                             
}

Los.geocodea función @ (que no es mía, así que no puedo editar) abre un nuevo "hilo" de ejecución.

Cuando intento imprimir el título en cada paso, siempre obtengo el último valor posible dei.

¿Cómo puedo mantener una referencia al valor correcto dei para cada iteración?