diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index 2870c3d..bb838ed 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -497,6 +497,8 @@
 //   -fpascal-strings
 static void InitializeLanguageStandard(LangOptions &Options, LangKind LK,
                                        TargetInfo *Target) {
+  // Allow the target to set the default the langauge options as it sees fit.
+  Target->getDefaultLangOptions(Options);
   
   if (Ansi) // "The -ansi option is equivalent to -std=c89."
     LangStd = lang_c89;
@@ -574,13 +576,11 @@
   Options.LaxVectorConversions = LaxVectorConversions;
   Options.Exceptions = Exceptions;
 
-  if (NeXTRuntime) {
+  // Override the default runtime if the user requested it.
+  if (NeXTRuntime)
     Options.NeXTRuntime = 1;
-  } else if (GNURuntime) {
+  else if (GNURuntime)
     Options.NeXTRuntime = 0;
-  } else {
-    Options.NeXTRuntime = Target->useNeXTRuntimeAsDefault();
-  }
 }
 
 static llvm::cl::opt<bool>
@@ -1524,8 +1524,8 @@
       InitializeBaseLanguage();
       LangKind LK = GetLanguage(InFile);
       bool PCH = InitializeLangOptions(LangInfo, LK);
-      InitializeLanguageStandard(LangInfo, LK, Target.get());
       InitializeGCMode(LangInfo);
+      InitializeLanguageStandard(LangInfo, LK, Target.get());
             
       // Process the -I options and set them in the HeaderInfo.
       HeaderSearch HeaderInfo(FileMgr);
