Por que não posso substituir os pseudo-elementos existentes?

Eu tenho duas regras CSS seguindo uma à outra:

<code>.some td:first-child:before {
    content:url('path/to/image.png')" " ;
}
.some .other:before {
    content:url('path/to/image2.png')" " ;
}
</code>

Aqui está o trecho de código HTML:

<code><table class="some">
<tr>
    <td class="other">Text goes here</td>
    <td>Some more text.</td>
</tr>
</table>
</code>

Ambos devem ser aplicados à mesma célula da tabela. Aquele sem a classe é concebido como um substituto. Mas, por algum motivo, está sempre escolhendo a primeira regra no segundo. Eu sei que o segundo funciona, já que será usado se eu desabilitar o primeiro no Firebug.

O que estou perdendo aqui?

questionAnswers(3)

yourAnswerToTheQuestion