diff --git a/examples/python/crashlog.py b/examples/python/crashlog.py
index bb7625b..e006ada 100755
--- a/examples/python/crashlog.py
+++ b/examples/python/crashlog.py
@@ -221,7 +221,7 @@
 
     class DarwinImage(symbolication.Image):
         """Class that represents a binary images in a darwin crash log"""
-        dsymForUUIDBinary = os.path.expanduser('~rc/bin/dsymForUUID')
+        dsymForUUIDBinary = '/usr/local/bin/dsymForUUID'
         if not os.path.exists(dsymForUUIDBinary):
             try:
                 dsymForUUIDBinary = subprocess.check_output('which dsymForUUID',
@@ -303,7 +303,6 @@
                     return False
             if not self.resolved_path and not os.path.exists(self.path):
                 try:
-                    import subprocess
                     dsym = subprocess.check_output(
                         ["/usr/bin/mdfind",
                          "com_apple_xcode_dsym_uuids == %s"%uuid_str])[:-1]
@@ -321,10 +320,6 @@
             if (self.resolved_path and os.path.exists(self.resolved_path)) or (
                     self.path and os.path.exists(self.path)):
                 print('ok')
-                # if self.resolved_path:
-                #     print '  exe = "%s"' % self.resolved_path
-                # if self.symfile:
-                #     print ' dsym = "%s"' % self.symfile
                 return True
             else:
                 self.unavailable = True
