diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ad45886348ee52fafb1681901368703301533c4c..e5287e272723b3cdf685f1f680eeaef544472cf2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-03  Tom Tromey  <tromey@redhat.com>
+
+	PR driver/30246
+	* gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
+	-gcoff3, -gxcoff3, -gvms3 implies -dD.
+
 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
 
 	* c-decl.c, config/avr/avr.c, config/avr/avr.h,
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 8830a498ed18fe9a4d5d3d22c91490331edb6bba..a7bb71e87603b1e7609ecb1997bf8f6766a618cb 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -776,7 +776,8 @@ static const char *cpp_unique_options =
  %{MMD:-MMD %{!o:%b.d}%{o*:%.d%*}}\
  %{M} %{MM} %{MF*} %{MG} %{MP} %{MQ*} %{MT*}\
  %{!E:%{!M:%{!MM:%{MD|MMD:%{o*:-MQ %*}}}}}\
- %{remap} %{g3:-dD} %{H} %C %{D*&U*&A*} %{i*} %Z %i\
+ %{remap} %{g3|ggdb3|gstabs3|gcoff3|gxcoff3|gvms3:-dD}\
+ %{H} %C %{D*&U*&A*} %{i*} %Z %i\
  %{fmudflap:-D_MUDFLAP -include mf-runtime.h}\
  %{fmudflapth:-D_MUDFLAP -D_MUDFLAPTH -include mf-runtime.h}\
  %{E|M|MM:%W{o*}}";