//SERVER-5127, SERVER-5036

function makeNestObj(depth){
    toret = { a : 1};

    for(i = 1; i < depth; i++){
        toret = {a : toret};
    }

    return toret;
}

t = db.objNestTest;
t.drop();

t.ensureIndex({a:1});

n = 1;
while ( true ) {
    var before = t.count();
    t.insert( { _id : n, a : makeNestObj(n) } );
    var after = t.count();
    if ( before == after )
        break;
    n++;
}

assert( n > 30, "not enough n: " + n );

assert.eq( t.count(), t.find( { _id : { $gt : 0 } } ).hint( { a : 1 } ).itcount() );
