I'm confused by some behavior of my Mac OS X Terminal and my Django `manage.py` shell and pdb.

When I start a new terminal, the Standard Input is displayed as I type. However, if there is an error, suddenly Standard Input does not appear on the screen. This error continues until I shut down that terminal window.

The Input is still being captured as I can see the Standard Output.

E.g. in `pdb.set_trace()` I can 'l' to display where I'm at in the code. However, the 'l' will not be displayed, just an empty prompt.

This makes it hard to debug because I can't determine what I'm typing in.

What could be going wrong and what can I do to fix it?