diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h
index db658d2..0f973eb 100644
--- a/include/llvm/MC/MCStreamer.h
+++ b/include/llvm/MC/MCStreamer.h
@@ -156,13 +156,6 @@
     virtual void EmitZerofill(MCSection *Section, MCSymbol *Symbol = 0,
                               unsigned Size = 0,unsigned Pow2Alignment = 0) = 0;
 
-    /// AbortAssembly - Stop and don't produce output, printing @param
-    /// AbortReason if non-NULL to indicate the reason the assembly is
-    /// terminated.
-    ///
-    /// @param AbortReason - The reason assembly is terminated, if non-NULL.
-    virtual void AbortAssembly(const char *AbortReason) = 0;
-
     /// @}
     /// @name Generating Data
     /// @{
diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp
index b77e6ef..b672503 100644
--- a/lib/MC/MCAsmStreamer.cpp
+++ b/lib/MC/MCAsmStreamer.cpp
@@ -55,8 +55,6 @@
     virtual void EmitZerofill(MCSection *Section, MCSymbol *Symbol = NULL,
                               unsigned Size = 0, unsigned Pow2Alignment = 0);
 
-    virtual void AbortAssembly(const char *AbortReason = NULL);
-
     virtual void EmitBytes(const StringRef &Data);
 
     virtual void EmitValue(const MCValue &Value, unsigned Size);
@@ -132,14 +130,6 @@
   OS << '\n';
 }
 
-void MCAsmStreamer::AbortAssembly(const char *AbortReason) {
-  OS << ".abort";
-  if (AbortReason != NULL)
-    OS << ' ' << AbortReason;
-  OS << '\n';
-  
-}
-
 void MCAsmStreamer::EmitAssignment(MCSymbol *Symbol, const MCValue &Value,
                                    bool MakeAbsolute) {
   assert(!Symbol->getSection() && "Cannot assign to a label!");
diff --git a/test/MC/AsmParser/directive_abort.s b/test/MC/AsmParser/directive_abort.s
index fefb8e2..3eb8e96 100644
--- a/test/MC/AsmParser/directive_abort.s
+++ b/test/MC/AsmParser/directive_abort.s
@@ -1,8 +1,6 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
+# RUN: llvm-mc -triple i386-unknown-unknown %s 2> %t
+# RUN: FileCheck -input-file %t %s
 
-# CHECK: TEST0:
 # CHECK: .abort "please stop assembing"
-# CHECK: .abort
 TEST0:  
 	.abort       "please stop assembing"
-.abort
diff --git a/tools/llvm-mc/AsmParser.cpp b/tools/llvm-mc/AsmParser.cpp
index 371a58e..65d48b2 100644
--- a/tools/llvm-mc/AsmParser.cpp
+++ b/tools/llvm-mc/AsmParser.cpp
@@ -14,6 +14,7 @@
 #include "AsmParser.h"
 
 #include "AsmExpr.h"
+#include "llvm/ADT/Twine.h"
 #include "llvm/MC/MCContext.h"
 #include "llvm/MC/MCInst.h"
 #include "llvm/MC/MCStreamer.h"
@@ -23,12 +24,12 @@
 #include "llvm/Target/TargetAsmParser.h"
 using namespace llvm;
 
-void AsmParser::Warning(SMLoc L, const char *Msg) {
-  Lexer.PrintMessage(L, Msg, "warning");
+void AsmParser::Warning(SMLoc L, const Twine &Msg) {
+  Lexer.PrintMessage(L, Msg.str(), "warning");
 }
 
-bool AsmParser::Error(SMLoc L, const char *Msg) {
-  Lexer.PrintMessage(L, Msg, "error");
+bool AsmParser::Error(SMLoc L, const Twine &Msg) {
+  Lexer.PrintMessage(L, Msg.str(), "error");
   return true;
 }
 
@@ -1117,6 +1118,9 @@
 /// ParseDirectiveAbort
 ///  ::= .abort [ "abort_string" ]
 bool AsmParser::ParseDirectiveAbort() {
+  // FIXME: Use loc from directive.
+  SMLoc Loc = Lexer.getLoc();
+
   StringRef Str = "";
   if (Lexer.isNot(asmtok::EndOfStatement)) {
     if (Lexer.isNot(asmtok::String))
@@ -1133,7 +1137,10 @@
   Lexer.Lex();
 
   // FIXME: Handle here.
-  Out.AbortAssembly(Str.str().c_str());
+  if (Str.empty())
+    Error(Loc, ".abort detected. Assembly stopping.");
+  else
+    Error(Loc, ".abort '" + Str + "' detected. Assembly stopping.");
 
   return false;
 }
diff --git a/tools/llvm-mc/AsmParser.h b/tools/llvm-mc/AsmParser.h
index 3d9842e..dd60338 100644
--- a/tools/llvm-mc/AsmParser.h
+++ b/tools/llvm-mc/AsmParser.h
@@ -25,6 +25,7 @@
 class MCStreamer;
 class MCValue;
 class TargetAsmParser;
+class Twine;
 
 class AsmParser : MCAsmParser {
 public:
@@ -52,8 +53,8 @@
 private:
   bool ParseStatement();
 
-  void Warning(SMLoc L, const char *Msg);
-  bool Error(SMLoc L, const char *Msg);
+  void Warning(SMLoc L, const Twine &Msg);
+  bool Error(SMLoc L, const Twine &Msg);
   bool TokError(const char *Msg);
   
   void EatToEndOfStatement();
diff --git a/tools/llvm-mc/MC-X86Specific.cpp b/tools/llvm-mc/MC-X86Specific.cpp
index d16bb15..6e28b02 100644
--- a/tools/llvm-mc/MC-X86Specific.cpp
+++ b/tools/llvm-mc/MC-X86Specific.cpp
@@ -13,6 +13,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "AsmParser.h"
+#include "llvm/ADT/Twine.h"
 #include "llvm/MC/MCInst.h"
 #include "llvm/Support/SourceMgr.h"
 using namespace llvm;
