diff --git a/lib/Bytecode/Reader/Reader.cpp b/lib/Bytecode/Reader/Reader.cpp
index 6c91a4a..6a3251d 100644
--- a/lib/Bytecode/Reader/Reader.cpp
+++ b/lib/Bytecode/Reader/Reader.cpp
@@ -2102,12 +2102,16 @@
     if (Handler)
       Handler->handleTargetTriple(triple);
     
-    if (At != BlockEnd && !hasAlignment) {
+    if (!hasAlignment && At != BlockEnd) {
       // If the file has section info in it, read the section names now.
       unsigned NumSections = read_vbr_uint();
       while (NumSections--)
         SectionNames.push_back(read_str());
     }
+    
+    // If the file has module-level inline asm, read it now.
+    if (!hasAlignment && At != BlockEnd)
+      TheModule->setInlineAsm(read_str());
   }
 
   // If any globals are in specified sections, assign them now.
diff --git a/lib/Bytecode/Writer/Writer.cpp b/lib/Bytecode/Writer/Writer.cpp
index c82665e..ec0b250 100644
--- a/lib/Bytecode/Writer/Writer.cpp
+++ b/lib/Bytecode/Writer/Writer.cpp
@@ -1030,6 +1030,9 @@
   output_vbr((unsigned)SectionNames.size());
   for (unsigned i = 0, e = SectionNames.size(); i != e; ++i)
     output(SectionNames[i]);
+  
+  // Output the inline asm string.
+  output(M->getInlineAsm());
 }
 
 void BytecodeWriter::outputInstructions(const Function *F) {
