Adicionando objeto ao JArray, substituindo o primeiro elemento

Ao adicionar um novo objeto a um JArray, cada objeto é adicionado à primeira entrada na matriz ([0]), além de ser anexado à matriz.

    response = client.GetAsync(new Uri(urlIndexDoc)).Result;
    result = response.Content.ReadAsStringAsync().Result; 

    JObject OPDDoc = JObject.Parse(result);
    JArray indexCEM = new JArray();
    JObject oNew = new JObject();  

    int idxcount = Convert.ToInt32(ConfigurationManager.AppSettings["IndexCount"]) + 1;  

   for (int i = 1; i < idxcount ; i++)
       {
           string istring = i.ToString();
           var idxname = OPDDoc["IndexName_" + istring];
           if (idxname != null)
           {
               oNew["PriceIndexId"] = istring;
               oNew["IndexName"] = idxname;
               oNew["IndexPrice"] = OPDDoc["IndexPrice_" + istring];
               indexCEM.Add(oNew);
            }
       }

Eu posso vê-lo sobrescrever o primeiro elemento no depurador toda vez que o próximo objeto for adicionado. O resultado é que o último item anexado acaba no indexCEM [0], além de ser o último item. Estou faltando alguma coisa aqui ou isso é um bug?

Usando o VS 2013 e o Json.Net 5.08 em um aplicativo de console.

questionAnswers(1)

yourAnswerToTheQuestion