diff --git a/src/compiler_llvm/compilation_unit.cc b/src/compiler_llvm/compilation_unit.cc
index 8be388d..9092485 100644
--- a/src/compiler_llvm/compilation_unit.cc
+++ b/src/compiler_llvm/compilation_unit.cc
@@ -111,8 +111,8 @@
 
 
 CompilationUnit::CompilationUnit(InstructionSet insn_set, size_t elf_idx)
-: insn_set_(insn_set), elf_idx_(elf_idx), context_(new llvm::LLVMContext()),
-  mem_usage_(0), num_elf_funcs_(0) {
+: cunit_lock_("compilation_unit_lock"), insn_set_(insn_set), elf_idx_(elf_idx),
+  context_(new llvm::LLVMContext()), mem_usage_(0), num_elf_funcs_(0) {
 
   // Create the module and include the runtime function declaration
   module_ = new llvm::Module("art", *context_);
@@ -146,6 +146,7 @@
 
 
 bool CompilationUnit::WriteBitcodeToFile(const std::string& bitcode_filename) {
+  MutexLock GUARD(cunit_lock_);
   std::string errmsg;
 
   llvm::OwningPtr<llvm::tool_output_file> out_file(
@@ -166,6 +167,8 @@
 
 
 bool CompilationUnit::Materialize() {
+  MutexLock GUARD(cunit_lock_);
+
   // Prepare the pipe between parent process and child process
   int pipe_fd[2];
   if (pipe(pipe_fd) == -1) {
@@ -246,12 +249,14 @@
 
 void CompilationUnit::RegisterCompiledMethod(const llvm::Function* func,
                                              CompiledMethod* compiled_method) {
+  MutexLock GUARD(cunit_lock_);
   compiled_methods_map_.Put(func, compiled_method);
 }
 
 
 void CompilationUnit::UpdateFrameSizeInBytes(const llvm::Function* func,
                                              size_t frame_size_in_bytes) {
+  MutexLock GUARD(cunit_lock_);
   SafeMap<const llvm::Function*, CompiledMethod*>::iterator iter =
     compiled_methods_map_.find(func);
 
