diff --git a/lib/sanitizer_common/sanitizer_linux.cc b/lib/sanitizer_common/sanitizer_linux.cc
index f9b0c4e..70e2eb3 100644
--- a/lib/sanitizer_common/sanitizer_linux.cc
+++ b/lib/sanitizer_common/sanitizer_linux.cc
@@ -166,6 +166,7 @@
 // ------------------ sanitizer_symbolizer.h
 typedef ElfW(Ehdr) Elf_Ehdr;
 typedef ElfW(Shdr) Elf_Shdr;
+typedef ElfW(Phdr) Elf_Phdr;
 
 bool FindDWARFSection(uptr object_file_addr, const char *section_name,
                       DWARFSection *section) {
@@ -219,12 +220,16 @@
   if (module_name == 0 || module_name[0] == '\0')
     return 0;
   void *mem = &data->modules[data->current_n];
-  ModuleDIContext *cur_module = new(mem) ModuleDIContext(module_name);
+  ModuleDIContext *cur_module = new(mem) ModuleDIContext(module_name,
+                                                         info->dlpi_addr);
   data->current_n++;
   for (int i = 0; i < info->dlpi_phnum; i++) {
-    uptr cur_beg = info->dlpi_addr + info->dlpi_phdr[i].p_vaddr;
-    uptr cur_end = cur_beg + info->dlpi_phdr[i].p_memsz;
-    cur_module->addAddressRange(cur_beg, cur_end);
+    const Elf_Phdr *phdr = &info->dlpi_phdr[i];
+    if (phdr->p_type == PT_LOAD) {
+      uptr cur_beg = info->dlpi_addr + phdr->p_vaddr;
+      uptr cur_end = cur_beg + phdr->p_memsz;
+      cur_module->addAddressRange(cur_beg, cur_end);
+    }
   }
   InternalFree(module_name);
   return 0;
diff --git a/lib/sanitizer_common/sanitizer_symbolizer.cc b/lib/sanitizer_common/sanitizer_symbolizer.cc
index 438d4c4..85eb076 100644
--- a/lib/sanitizer_common/sanitizer_symbolizer.cc
+++ b/lib/sanitizer_common/sanitizer_symbolizer.cc
@@ -38,7 +38,7 @@
   internal_memset(this, 0, sizeof(AddressInfo));
 }
 
-ModuleDIContext::ModuleDIContext(const char *module_name) {
+ModuleDIContext::ModuleDIContext(const char *module_name, uptr base_address) {
   full_name_ = internal_strdup(module_name);
   short_name_ = internal_strrchr(module_name, '/');
   if (short_name_ == 0) {
@@ -46,7 +46,7 @@
   } else {
     short_name_++;
   }
-  base_address_ = (uptr)-1;
+  base_address_ = base_address;
   n_ranges_ = 0;
   mapped_addr_ = 0;
   mapped_size_ = 0;
@@ -56,7 +56,6 @@
   CHECK_LT(n_ranges_, kMaxNumberOfAddressRanges);
   ranges_[n_ranges_].beg = beg;
   ranges_[n_ranges_].end = end;
-  base_address_ = Min(base_address_, beg);
   n_ranges_++;
 }
 
@@ -130,7 +129,7 @@
     }
     return 0;
   }
-  static const uptr kMaxNumberOfModuleContexts = 256;
+  static const uptr kMaxNumberOfModuleContexts = 4096;
   // Array of module debug info contexts is leaked.
   ModuleDIContext *modules_;
   uptr n_modules_;
diff --git a/lib/sanitizer_common/sanitizer_symbolizer.h b/lib/sanitizer_common/sanitizer_symbolizer.h
index f86fcf3..c813e80 100644
--- a/lib/sanitizer_common/sanitizer_symbolizer.h
+++ b/lib/sanitizer_common/sanitizer_symbolizer.h
@@ -68,7 +68,7 @@
 
 class ModuleDIContext {
  public:
-  explicit ModuleDIContext(const char *module_name);
+  ModuleDIContext(const char *module_name, uptr base_address);
   void addAddressRange(uptr beg, uptr end);
   bool containsAddress(uptr address) const;
   void getAddressInfo(AddressInfo *info);
@@ -85,7 +85,7 @@
   char *full_name_;
   char *short_name_;
   uptr base_address_;
-  static const uptr kMaxNumberOfAddressRanges = 16;
+  static const uptr kMaxNumberOfAddressRanges = 8;
   AddressRange ranges_[kMaxNumberOfAddressRanges];
   uptr n_ranges_;
   uptr mapped_addr_;
