ApacheのVirtualHostで謎な挙動

Apacheの環境構築をやっています。VirtualHostがいくつもあるんですが、なんだかこんな感じで描くとちゃんと解釈してくれない。

<VirtualHost *:80>
   ServerName   hoge.example.com
(以下略)

ずらずらと書いているVirutalHostの一番上のもので全部キャプチャされてしまって、期待するVirtualHostで処理してくれないんですね。
こういうふうに書くとOK.

<VirtualHost hoge.example.com:80>
   ServerName hoge.example.com

なぜだろう。ドキュメントによると上の書き方でいいはずだし、いままで使っている環境でもそう書いているんだが。
まぁ、おそらく名前解決の問題だろうと真面目に考えないことにします。本格運用がはじまってDNSもキチンと整理されたらまた考えることにします。