One note: I was challenged personally on this list to discuss the issue, a few others are challenged. It's clear that someone is on the wrong side for the correct answer to this challenge.
I assert it is not me (and I'm given enough proofs).
Being in error is not dramatic: challenging someone for his errors is not a personal attack. Remember: "Errare humanum est", and errors can occur from anyone (qualified or not) in any programming project (there are tons of bugs discovered late, most of them are unvoluntary, they just were unnoticed because of an initial unchecked assumption when writing code, or because this was still not a design goal matching the immediate need and the initial usages).
What matters is that these bugs get fixed when they are demonstrated and the atittude of "official" maintainers of published code (that many Lua programmers will want to use without constantly checking everything in the Lua engine they just install "as is"):
I propose a very simple fix (use a true prime constant multiplier, that cannot break anything and certainly not performance) and some improvement (changing the rotation to 3 bits instead of 2, and adding the unit before multiplying by a constant, instead of after the multiplication) to increase the performance of tables, make them much less vulnerable to wellknown attacks, and make them usable with less frequent "slow worst cases" in many practical cases in Lua applications. I have also proposed (like Knuth did) to not use any Mersenne prime (Knuth suggested Mersenne numbers as a possible but still poor choice only good for very small tables, he recommanded and published stronger primes for common hash word sizes, that can work for all hash tables with any size lower than or equal to one of these common hash word sizes).