diff --git a/main.py b/main.py
index a22c6a1..f4b6e7a 100755
--- a/main.py
+++ b/main.py
@@ -109,7 +109,7 @@
 global_options.add_option('--trace',
                           dest='trace', action='store_true',
                           help='trace git command execution (REPO_TRACE=1)')
-global_options.add_option('--trace_to_stderr',
+global_options.add_option('--trace-to-stderr',
                           dest='trace_to_stderr', action='store_true',
                           help='trace outputs go to stderr in addition to .repo/TRACE_FILE')
 global_options.add_option('--trace-python',
diff --git a/man/repo.1 b/man/repo.1
index e7368a8..6a9e07d 100644
--- a/man/repo.1
+++ b/man/repo.1
@@ -25,7 +25,7 @@
 \fB\-\-trace\fR
 trace git command execution (REPO_TRACE=1)
 .TP
-\fB\-\-trace_to_stderr\fR
+\fB\-\-trace-to-stderr\fR
 trace outputs go to stderr in addition to
 \&.repo/TRACE_FILE
 .TP
diff --git a/repo_trace.py b/repo_trace.py
index 0354295..86cbfc6 100644
--- a/repo_trace.py
+++ b/repo_trace.py
@@ -22,10 +22,11 @@
 
 import sys
 import os
-import tempfile
 import time
 from contextlib import ContextDecorator
 
+import platform_utils
+
 # Env var to implicitly turn on tracing.
 REPO_TRACE = 'REPO_TRACE'
 
@@ -38,7 +39,7 @@
 
 _TRACE_FILE_NAME = 'TRACE_FILE'
 
-_MAX_SIZE = 5  # in mb
+_MAX_SIZE = 70  # in mb
 
 _NEW_COMMAND_SEP = '+++++++++++++++NEW COMMAND+++++++++++++++++++'
 
@@ -123,7 +124,7 @@
   return trace_file
 
 def _ClearOldTraces():
-  """Clear traces from old commands if trace file is too big.
+  """Clear the oldest commands if trace file is too big.
 
   Note: If the trace file contains output from two `repo`
         commands that were running at the same time, this
@@ -131,12 +132,12 @@
   """
   if os.path.isfile(_TRACE_FILE):
     while os.path.getsize(_TRACE_FILE)/(1024*1024) > _MAX_SIZE:
-      temp = tempfile.NamedTemporaryFile(mode='w', delete=False)
+      temp_file = _TRACE_FILE + '.tmp'
       with open(_TRACE_FILE, 'r', errors='ignore') as fin:
-        trace_lines = fin.readlines()
-        for i , l in enumerate(trace_lines):
-          if 'END:' in l and _NEW_COMMAND_SEP in l:
-            temp.writelines(trace_lines[i+1:])
-            break
-      temp.close()
-      os.replace(temp.name, _TRACE_FILE)
+        with open(temp_file, 'w') as tf:
+          trace_lines = fin.readlines()
+          for i , l in enumerate(trace_lines):
+            if 'END:' in l and _NEW_COMMAND_SEP in l:
+              tf.writelines(trace_lines[i+1:])
+              break
+      platform_utils.rename(temp_file, _TRACE_FILE)
