fix 3490 & refactoring

git-svn-id: http://farmanager.com/svn/trunk@10568 72235d2c-c60c-0410-a47a-a0032694dc5d