Why does my Terminal command line screw up like this? (bash's fault?) When I use the command line history ( CtrlR , CtrlP )

The command line screws up like this:


The cursor is supposedly located at the end of the line ( just pressed CtrlE )  

If I press enter, just source ~/.bash_profile is executed, the rest is just rubbish on the screen.
Although it works as it should, I'd like the terminal to not  be visually broken.

edit:
This is my PS1:
PS1="\033[0;31m[mac] \033[0;37m\w\033[1;36m&gt; \033[1;0m"
It's most likely an issue with what you've set your PS1 to in your .bashrc or .bash_profile.  Specifically, I'd expect it's related to incorrect escape sequences.  

Here is a link with more information.  It's hard to tell exactly without seeing what your PS1 is set to.