diff --git a/cint/cling/lib/Interpreter/CIFactory.cpp b/cint/cling/lib/Interpreter/CIFactory.cpp
index bbc67e0fdb721801d43de42d385e3f8da1229b76..f74c74e4dee7d385fb750bbf213b24cbbbd66074 100644
--- a/cint/cling/lib/Interpreter/CIFactory.cpp
+++ b/cint/cling/lib/Interpreter/CIFactory.cpp
@@ -168,6 +168,10 @@ namespace cling {
 
   void CIFactory::SetClingCustomLangOpts(LangOptions& Opts) {
     Opts.EmitAllDecls = 1;
+    Opts.ObjCNonFragileABI2 = 0;
+    Opts.Exceptions = 1;
+    Opts.CXXExceptions = 1;
+    Opts.Deprecated = 1;
   }
 
   void CIFactory::SetClingTargetLangOpts(LangOptions& Opts, 
@@ -177,6 +181,18 @@ namespace cling {
       Opts.MSCVersion = 1300;
       // Should fix http://llvm.org/bugs/show_bug.cgi?id=10528
       Opts.DelayedTemplateParsing = 1;
+    } else {
+      Opts.MicrosoftExt = 0;
+    }
+    if (Target.getTriple().getArch() == llvm::Triple::x86) {
+       Opts.ObjCNonFragileABI = 1;
+    } else {
+       Opts.ObjCNonFragileABI = 0;
+    }
+    if (Target.getTriple().isOSDarwin()) {
+       Opts.NeXTRuntime = 1;
+    } else {
+       Opts.NeXTRuntime = 0;
     }
   }
 } // end namespace