標準エラーに出力すると勝手に終了してしまう

Windows (XP) 環境で標準エラーに出力するとアプリケーションが勝手に終了してしまいました。
ただし終了するのはコンソールを非表示にしたときに標準エラーに出力する場合のみで、コンソールが見えている状態や標準出力への出力なら問題がないようです。

stderr.d のソースコード(ウィンドウを出してループするだけ)

ウィンドウを出しておくのにSDLを使用しています。

// Using dmd v1.043, Tango 0.99.8, Windows XP Home SP3
import SDL;
import tango.io.Stdout;

void main() {
  SDL_Init(SDL_INIT_VIDEO);
  SDL_SetVideoMode(640, 480, 8, SDL_SWSURFACE);

  SDL_Event event;
  bool done = false;

  while (!done) {
    while (SDL_PollEvent(&event)) {
      switch (event.type) {
      case SDL_QUIT:
        done = true;
        break;
      default:
      }
    }

    Stderr("stderr").newline;
    SDL_Delay(33);
  }

  SDL_Quit();
}

コンソールが見えないようにしてDMDコンパイルします。

$ dmd stderr.d -I../SDL ../SDL/*.lib -L/subsystem:windows:4.0

端末から実行すると"stderr"という文字列が沢山流れますが、ダブルクリックで実行するとすぐに終了してしまいます。
また"-L/subsystem:windows:4.0"を取ってやれば、(実行時にコンソールが表示されますが)終了しなくなります。
原因はよく分かってないので調査してみます(もしくは諦めます;-P)。

追記

Windows 7に環境を移行してみました。相変わらず原因はわかって(調べて)いないのですが、

$ dmd -L/subsystem:windows

というオプションをつけてコンパイルすると標準出力すら出せなくなります。
ですので、

デバッグ
"-L/subsystem:windows"オプションをつけない。標準(エラー)出力は出してよい。
リリース時
"-L/subsystem:windows"オプションをつける。標準(エラー)出力は出さない。

このように切り替えてビルドすることにしました。