diff --git a/indra/newview/generate_breakpad_symbols.py b/indra/newview/generate_breakpad_symbols.py
index 5ebec1563e915b5914be63fc2d1dc4f1ecb6bcae..ddc8a41136c3d431b29c706e2f82dbb20acd3131 100644
--- a/indra/newview/generate_breakpad_symbols.py
+++ b/indra/newview/generate_breakpad_symbols.py
@@ -75,7 +75,14 @@ def list_files():
 
     def dump_module(m):
         print "dumping module '%s' with '%s'..." % (m, dump_syms_tool)
-        child = subprocess.Popen([dump_syms_tool, m] , stdout=subprocess.PIPE)
+        dsym_full_path = m
+        if sys.platform in ['darwin']:
+            dsym_dir=os.path.join(m+".dSYM", 'Contents', 'Resources', 'DWARF')
+            if os.path.isdir(dsym_dir):
+                dsym_full_path=os.path.join(dsym_dir, os.path.basename(m))
+            else:
+                dsym_full_path = m
+        child = subprocess.Popen([dump_syms_tool, dsym_full_path] , stdout=subprocess.PIPE)
         out, err = child.communicate()
         return (m,child.returncode, out, err)