diff --git a/lib/Bitcode/Writer/BitcodeWriter.cpp b/lib/Bitcode/Writer/BitcodeWriter.cpp
index 408a352..913c2bc 100644
--- a/lib/Bitcode/Writer/BitcodeWriter.cpp
+++ b/lib/Bitcode/Writer/BitcodeWriter.cpp
@@ -24,6 +24,7 @@
 #include "llvm/ValueSymbolTable.h"
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Support/Streams.h"
+#include "llvm/Support/raw_ostream.h"
 #include "llvm/System/Program.h"
 using namespace llvm;
 
@@ -1330,6 +1331,13 @@
 /// WriteBitcodeToFile - Write the specified module to the specified output
 /// stream.
 void llvm::WriteBitcodeToFile(const Module *M, std::ostream &Out) {
+  raw_os_ostream RawOut(Out);
+  WriteBitcodeToFile(M, RawOut);
+}
+
+/// WriteBitcodeToFile - Write the specified module to the specified output
+/// stream.
+void llvm::WriteBitcodeToFile(const Module *M, raw_ostream &Out) {
   std::vector<unsigned char> Buffer;
   BitstreamWriter Stream(Buffer);
   
@@ -1356,7 +1364,7 @@
 
   
   // If writing to stdout, set binary mode.
-  if (llvm::cout == Out)
+  if (&llvm::outs() == &Out)
     sys::Program::ChangeStdoutToBinary();
 
   // Write the generated bitstream to "Out".
diff --git a/lib/Bitcode/Writer/BitcodeWriterPass.cpp b/lib/Bitcode/Writer/BitcodeWriterPass.cpp
index dd16fab..209cf09 100644
--- a/lib/Bitcode/Writer/BitcodeWriterPass.cpp
+++ b/lib/Bitcode/Writer/BitcodeWriterPass.cpp
@@ -17,16 +17,24 @@
 
 namespace {
   class WriteBitcodePass : public ModulePass {
-    std::ostream &Out;                 // ostream to print on
+    // FIXME: Kill off std::ostream
+    std::ostream *Out;
+    raw_ostream *RawOut; // raw_ostream to print on
   public:
-    static char ID; // Pass identifcation, replacement for typeid
+    static char ID; // Pass identification, replacement for typeid
     explicit WriteBitcodePass(std::ostream &o)
-      : ModulePass(&ID), Out(o) {}
+      : ModulePass(&ID), Out(&o), RawOut(0) {}
+    explicit WriteBitcodePass(raw_ostream &o)
+      : ModulePass(&ID), Out(0), RawOut(&o) {}
     
     const char *getPassName() const { return "Bitcode Writer"; }
     
     bool runOnModule(Module &M) {
-      WriteBitcodeToFile(&M, Out);
+      if (Out) {
+        WriteBitcodeToFile(&M, *Out);
+      } else {
+        WriteBitcodeToFile(&M, *RawOut);
+      }
       return false;
     }
   };
@@ -41,3 +49,8 @@
 }
 
 
+/// createBitcodeWriterPass - Create and return a pass that writes the module
+/// to the specified ostream.
+ModulePass *llvm::createBitcodeWriterPass(raw_ostream &Str) {
+  return new WriteBitcodePass(Str);
+}
