Mm update in gr_mpsk_receiver_cc

I am reading the c++ code of gr_mpsk_receiver_cc.cc

in the function: mm_error_tracking, mu is updated as [line 251]
mu+=omega+gain_mu*mm_error;

It seems to me that omega already takes mm_error into account. Why in
updating mu, mm_error is added again?

I also checked the book “Digital Communication Receivers -
Synchronization, channel estimation, and signal processing”, where
Equation (9-39) (p 526) shows the update should be
mu+=omega;

Is this an error or my misunderstanding?

Thanks
Kyle