--- truecrypt-6.3-source/Core/Unix/Linux/CoreLinux.cpp.orig 2009-10-21 15:11:02.000000000 +0200 +++ truecrypt-6.3-source/Core/Unix/Linux/CoreLinux.cpp 2009-10-27 11:02:51.000000000 +0100 @@ -90,13 +90,23 @@ void CoreLinux::DetachLoopDevice (const DevicePath &devicePath) const { list args; + list args2; args.push_back ("-d"); args.push_back (devicePath); + /* args2 needed to umount loop device before detaching it + * by Enrico Lo Tauro (neongen) + */ + args2.push_back (devicePath); for (int t = 0; true; t++) { try { + try + { + Process::Execute ("umount", args2); + } + catch (ExecutedProcessFailed&) { } Process::Execute ("losetup", args); break; }