A me il codice che hai posta funziona correttamente (a parte qualche notice).