My copy of "HDL Chip Design" by Douglas Smith is the ninth printing, July 2001.
The book systematically makes the error of using blocking assignments for synchronous communication, which results in nondeterministic code. Non-blocking assignments should be used in this case.
Has this ever been fixed in a later printing, if any?