Hola,
 
Perdon por molestar con un tema seguramente tan recurrente (no lo he colgado bajo ningun lenguaje de programacion concreto) pero es que realmente me estoy volviendo loco, y no encuentro solucion para ello. 
Estoy tratando de explicar a unos guiris como se valida el CIF, NIF y demas, y me plantean una duda que realmente no se responder. 
He tirado de wikipedia para explicarles como se calcula el CIF:
http://es.wikipedia.org/wiki/C%C3%B3digo_de_identificaci%C3%B3n_fiscal 
En la misma, se dice claramente que el digito de control: 
 Cita:  Será una LETRA si la clave de entidad es K, Q ó S.
Será un NUMERO si la entidad es A, B, E ó H.
    Asi pues, si estoy validando el siguiente CIF:
B9181716C 
Deberia ser erroneo por defecto (la C deberia ser en realidad un 3) 
Sin embargo, me encuentro multitud de paginas web donde validan como correctos ambos valores!!! (ya sea terminando en C o en 3) y me estoy volviendo loco:
http://www.argored.com/validar-cif-nif-nie.php
http://comunidadhorizontal.com/utilidades/validar-cif-nif-nie.php
http://www.aplicacionesinformaticas.com/programas/gratis/cif.php 
No puede ser que los dos valores sean correctos, tendra que ser uno u otro no? 
Me ayudais a aclararlo por favor? 
Perdonad la ausencia de tildes, pero me encuentro fuera de Espanya en un ordenador prestado 
Gracias