i don't now about bad dreams but... DS has been doing this for the past couple weeks. i think it's now to the point where he's now set his internal clock!!
we think he may be hungry. he eats dinner around 5 and then plays until around 7 and then sleeps until around 6 or 7. that's 14 hours without food!
we did start giving him a snack before bed which seemed to help. or we still give him a bottle and DH gives it to him around 4 which probably isn't helping but he'll at least go back to sleep for a couple hours.
good luck!