In speakup/src/serialio.c comment out the return (NULL); line just below __release_region. Looking at the kernel source in kernel/resource.c it seems that if __release_region fails you would get a kernel message. So speakup seems to think it fails but the kernel doesn't. Someone with more smarts than me maybe can figure this all out.