diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
index dd16fab..209cf09 100644
--- a/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
+++ b/llvm/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);
+}
