diff --git a/sky130/custom/scripts/fix_missing_diodes_lef.py b/sky130/custom/scripts/fix_missing_diodes_lef.py
deleted file mode 100644
index f1209db..0000000
--- a/sky130/custom/scripts/fix_missing_diodes_lef.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env python3
-
-# This script can be removed when GitHub issue #141 (https://github.com/google/skywater-pdk/issues/141) is fixed.
-from os import path
-import argparse
-import subprocess
-
-parser = argparse.ArgumentParser(
-    description='This file fixes the missing diode information from the LEF files of the ms and hs')
-
-parser.add_argument('--skywater_path', '-sp',required=True,
-                    help='skywater path')
-
-
-args = parser.parse_args()
-skywater_path = args.skywater_path
-
-
-hs_lef =  str(skywater_path)+"/sky130_fd_sc_hs/latest/cells/diode/sky130_fd_sc_hs__diode_2.magic.lef"
-
-if(path.exists(hs_lef)):
-    hs_lef_FileOpener = open(hs_lef, "r")
-    if hs_lef_FileOpener.mode == 'r':
-        hs_lef_Content = hs_lef_FileOpener.read()
-    hs_lef_FileOpener.close()
-    hs_lef_Content = hs_lef_Content.replace("CLASS BLOCK","CLASS CORE ANTENNACELL")
-    if hs_lef_Content.find("PIN DIODE\n    DIRECTION INPUT ;") == -1:
-        hs_lef_Content = hs_lef_Content.replace("PIN DIODE","SYMMETRY X Y ;\n  SITE unit ;\n  PIN DIODE\n    DIRECTION INPUT ;\n    USE SIGNAL ;")
-    hs_lef_FileOpener = open(hs_lef,"w")
-    hs_lef_FileOpener.write(hs_lef_Content)
-    hs_lef_FileOpener.close()
-
-
-ms_lef =  str(skywater_path)+"/sky130_fd_sc_ms/latest/cells/diode/sky130_fd_sc_ms__diode_2.magic.lef"
-
-if(path.exists(ms_lef)):
-    ms_lef_FileOpener = open(ms_lef, "r")
-    if ms_lef_FileOpener.mode == 'r':
-        ms_lef_Content = ms_lef_FileOpener.read()
-    ms_lef_FileOpener.close()
-    ms_lef_Content = ms_lef_Content.replace("CLASS BLOCK","CLASS CORE ANTENNACELL")
-    if ms_lef_Content.find("PIN DIODE\n    DIRECTION INPUT ;") == -1:
-        ms_lef_Content = ms_lef_Content.replace("PIN DIODE","SYMMETRY X Y ;\n  SITE unit ;\n  PIN DIODE\n    DIRECTION INPUT ;\n    USE SIGNAL ;")
-    ms_lef_FileOpener = open(ms_lef,"w")
-    ms_lef_FileOpener.write(ms_lef_Content)
-    ms_lef_FileOpener.close()
