The "rm" basm constraint doesn't work with my version of gcc (4.5.2), not even in a simple example. Since we usually only have 5 registers available on i386, force it to be memory on that architecture. I've reported an Ubuntu bug on the "rm" constraint issue [1], and it seems to apply to a lot of gcc versions. In the meantime I recommend this patch to be applied to both master and stable-queue. I've got some positive feedback from testing in the Ubuntu community as well. @Colin, I haven't forgot that there might still be issues if you completely silence one channel, it just hasn't been time/priority to deal with that yet, feel free to beat me to it if you like :-) -- David Henningsson, Canonical Ltd. http://launchpad.net/~diwic [1] https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/789031