diff --git a/lib/MC/MCAssembler.cpp b/lib/MC/MCAssembler.cpp
index fe3d2d1..21246cc 100644
--- a/lib/MC/MCAssembler.cpp
+++ b/lib/MC/MCAssembler.cpp
@@ -331,7 +331,7 @@
 
   void WriteNlist32(MachSymbolData &MSD) {
     MCSymbolData &Data = *MSD.SymbolData;
-    MCSymbol &Symbol = Data.getSymbol();
+    const MCSymbol &Symbol = Data.getSymbol();
     uint8_t Type = 0;
     uint16_t Flags = Data.getFlags();
     uint32_t Address = 0;
@@ -592,7 +592,7 @@
     // files.
     for (MCAssembler::symbol_iterator it = Asm.symbol_begin(),
            ie = Asm.symbol_end(); it != ie; ++it) {
-      MCSymbol &Symbol = it->getSymbol();
+      const MCSymbol &Symbol = it->getSymbol();
 
       // Ignore assembler temporaries.
       if (it->getSymbol().isTemporary())
@@ -628,7 +628,7 @@
     // Now add the data for local symbols.
     for (MCAssembler::symbol_iterator it = Asm.symbol_begin(),
            ie = Asm.symbol_end(); it != ie; ++it) {
-      MCSymbol &Symbol = it->getSymbol();
+      const MCSymbol &Symbol = it->getSymbol();
 
       // Ignore assembler temporaries.
       if (it->getSymbol().isTemporary())
@@ -926,9 +926,9 @@
                                                        
 /* *** */
 
-MCSymbolData::MCSymbolData() : Symbol(*(MCSymbol*)0) {}
+MCSymbolData::MCSymbolData() : Symbol(*(const MCSymbol*)0) {}
 
-MCSymbolData::MCSymbolData(MCSymbol &_Symbol, MCFragment *_Fragment,
+MCSymbolData::MCSymbolData(const MCSymbol &_Symbol, MCFragment *_Fragment,
                            uint64_t _Offset, MCAssembler *A)
   : Symbol(_Symbol), Fragment(_Fragment), Offset(_Offset),
     IsExternal(false), IsPrivateExtern(false),
