diff --git a/common/create_lef_library.py b/common/create_lef_library.py
index 2b76f9a..2d56b41 100755
--- a/common/create_lef_library.py
+++ b/common/create_lef_library.py
@@ -14,6 +14,8 @@
 import glob
 import fnmatch
 
+#----------------------------------------------------------------------------
+
 def usage():
     print('')
     print('Usage:')
@@ -29,7 +31,9 @@
     print('    -excludelist=     is a comma-separated list of files to ignore')
     print('')
 
-def create_lef_library(destlibdir, destlib, do_compile_only, excludelist):
+#----------------------------------------------------------------------------
+
+def create_lef_library(destlibdir, destlib, do_compile_only=False, excludelist=[]):
 
     alllibname = destlibdir + '/' + destlib + '.lef'
     if os.path.isfile(alllibname):
@@ -84,9 +88,6 @@
             for lfile in llist:
                 if os.path.isfile(lfile):
                     os.remove(lfile)
-            if newname:
-                if os.path.isfile(newname):
-                    os.remove(newname)
     else:
         print('Only one file (' + str(llist) + ');  ignoring "compile" option.')
 
@@ -114,7 +115,7 @@
             keyval = option[1:].split('=')
             if keyval[0] == 'compile-only':
                 if len(keyval) > 0:
-                    if keyval[1].tolower() == 'true' or keyval[1] == 'yes' or keyval[1] == '1':
+                    if keyval[1].tolower() == 'true' or keyval[1].tolower() == 'yes' or keyval[1] == '1':
                         do_compile_only = True
                 else:
                     do_compile_only = True
