Defina a posição do cursor na div 'contenteditable' que tem filhos

Eu tenho uma estrutura HTML como esta:

<div contenteditable="true">This is some plain, boring content.</div>

Eu também tenho essa função que permite definir a posição do cursor para qualquer lugar que eu quiser dentro da div:

// Move caret to a specific point in a DOM element
function SetCaretPosition(object, pos)
{
    // Get key data
    var el = object.get(0); // Strip inner object from jQuery object
    var range = document.createRange();
    var sel = window.getSelection();

    // Set the range of the DOM element
    range.setStart(el.childNodes[0], pos);
    range.collapse(true);

    // Set the selection point
    sel.removeAllRanges();
    sel.addRange(range);
}

Esse código funciona completamente bem até eu começar a adicionar tags filho(span, b, i, u, strike, sup, sub)&nbsp;para a div p.

<div contenteditable="true">
    This is some <span class="fancy">plain</span>, boring content.
</div>

As coisas ficam mais complicadas quando essas tags filho terminam com tags filho, por exemplo,

<div contenteditable="true">
    This is some <span class="fancy"><i>plain</i></span>, boring content.
</div>

Essencialmente, o que acontece, é quesetStart&nbsp;lança umIndexSizeError&nbsp;quando eu tentoSetCaretPosition&nbsp;para um índice maior que o início de uma tag filho.setStart&nbsp;só funciona até atingir a primeira tag filho.

O que eu preciso é para oSetCaretPosition&nbsp;para manipular um número desconhecido dessas tags filho (e potencialmente um número desconhecido de tags filho aninhadas) para que a definição da posição funcione da mesma maneira que faria se não houvesse tags.

Então, para ambos:

<div contenteditable="true">This is some plain, boring content.</div>

e isto:

<div contenteditable="true">
    This is <u>some</u> <span class="fancy"><i>plain</i></span>, boring content.
</div>

SetCaretPosition(div, 20);&nbsp;colocaria o sinal de intercalação antes do 'b' em 'chato'.

Qual é o código que eu preciso? Muito Obrigado!