[V17] Rails3 backporting to Rails2

rebased #429.