не может быть тоже самое. Если убрать из 47 фунции лишний end перед else, то в следующий раз скрипт должен был бы придраться к следующей функции. (там та же ошибка, собственно.)
Добавлено через 1 минуту
вообще, не вижу кроме этого никаких особых ошибок. (в данной функции). Сам часто также пишу.