I came across a problem within my program that I'm writing. I've narrowed down the problem to these two functions. The problem occurs when you call the function enterPasswords, enter invalid data such as 'a', then break out of the passwordLength function by entering valid data such as 'hello'. I've left some print statements there to help you see the problem. I've tried adding returns, but the same problem still occurs. 

Any advice will be greatly appreciated. If you could tell me why the problem is occurring, I'm sure I could fix it myself. Thanks.

```
    def passwordLength(password):
        if (len(password) < 4) or (len(password) > 15):
            print("Error from server: Your password must be at least four and at most fifteen characters long.")
            enterPasswords()

    def enterPasswords():
        password = input("Input password: ")
        passwordLength(password)
        print(password)
        password2 = input("Re-enter password: ")
        print(password, password2)

    enterPasswords()

```

Here is an image of my problem (What I'm wanting to know is, why isn't the program ending where I've highlighted, why does it carry on, and why is 'a' being printed towards the end?):

<http://i.imgur.com/LEXQFTO.png>