Hello. I managed to find out what causes the whole loop file to be read for gpg keys (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=450784). mount/lomount.c, function do_GPG_pipe(): #v+ if(loopOffsetBytes && !strcmp(loopFileName, gpgKeyFile)) { #v- This condition won't apply because loopFileName was canonicalize()'d. So the solution is simple: canonicalize() or myrealpath() gpgKeyFile as well. That's where the fun begins: I can't just put canonicalize() or myrealpath() there because losetup doesn't link sundries.o. If I call gcc manually with sundries.o added, there comes "multiple definition of ..." (error, xstrdup, ...). I don't really know why lomount.c has its own error() & stuff and I didn't want to break anything. So anyone with deeper util-linux knowledge please fix it :). Regards, -- hondza | GPG key: http://www.hondza.adslink.cz/key.asc Fingerprint: 31E7 EF56 7280 5C89 75E9 FF9D 010E 175F 7823 CF38 GPG/PGP encrypted/signed emails are welcome. - Linux-crypto: cryptography in and on the Linux system Archive: http://mail.nl.linux.org/linux-crypto/