With the help of index functions, we re-derive the ML(n)BiCGStab algorithm in [35] in a more systematic way. There are n ways to define the ML(n)BiCGStab residual vector. Each different definition will lead to a different ML(n)BiCGStab algorithm. We demonstrate this by deriving a second algorithm which requires less storage. We also analyze the breakdown situations and summarize some useful properties about ML(n)BiCGStab. Implementation issues are also addressed. In particular, we discuss in details on the choices of the parameters in ML(n)BiCGStab. Key words. CGS, BiCGStab, ML(n)BiCGStab, multiple starting Lanczos, Krylov subspace, iterative methods, linear systems AMS subject classifications. Primary, 65F10, 65F15; Secondary, 65F25, 65F30.