What is the difference between thread state WAIT and thread state BLOCKED?

The [Thread.State documentation](http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.State.html):

> 
> **Blocked**  
> 
> A thread that is blocked waiting for a monitor lock is in this state.
> 
> 
> **Waiting**  
> 
> A thread that is waiting indefinitely for another thread to perform a particular action is in this state
> 
> 
> 

does not explain the difference to me.