diff --git a/VERSION b/VERSION
index b0f3d96..66c4c22 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.8
+1.0.9
diff --git a/sky130/custom/scripts/vpb_vnb_convert.py b/sky130/custom/scripts/vpb_vnb_convert.py
new file mode 100755
index 0000000..db781e3
--- /dev/null
+++ b/sky130/custom/scripts/vpb_vnb_convert.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python3
+#
+# Convert VNB and VPB layers in a LEF file from "li1" or "met1" to
+# "pwell" and "nwell" masterslice layers, as they should be. 
+#
+
+import os
+import sys
+import re
+
+if len(sys.argv) < 3:
+    print("Usage: vpb_vnb_convert.py <lef_file_in> <lef_file_out>")
+    sys.exit(1)
+
+lef_file_in = sys.argv[1]
+lef_file_out = sys.argv[2]
+
+print("Input:  " + lef_file_in)
+print("Output:  " + lef_file_out)
+
+with open(lef_file_in, 'r') as ifile:
+    leflines = ifile.read().splitlines()
+
+layrex = re.compile('[ \t]*LAYER[ \t]+([^ \t]+)[ \t]+;')
+pinrex = re.compile('[ \t]*PIN[ \t]+([^ \t\n]+)')
+endrex = re.compile('[ \t]*END[ \t]+([^ \t\n]+)')
+subrex = re.compile('([ \t]*LAYER[ \t]+)([^ \t]+)([ \t]+;)')
+
+vpbpin = False
+vnbpin = False
+
+linesout = []
+
+for line in leflines:
+    lineout = line
+
+    lmatch = layrex.match(line)
+    pmatch = pinrex.match(line)
+    ematch = endrex.match(line)
+
+    if pmatch:
+        pinname = pmatch.group(1)
+
+        if pinname == 'VNB':
+            vnbpin = True
+        elif pinname == 'VPB':
+            vpbpin = True
+
+    elif ematch:
+        pinname = ''
+        vnbpin = False
+        vpbpin = False
+
+    elif lmatch:
+        if vpbpin:
+           lineout = subrex.sub(r'\1nwell\3', line)
+        elif vnbpin:
+           lineout = subrex.sub(r'\1pwell\3', line)
+    
+    linesout.append(lineout)
+
+with open(lef_file_out, 'w') as ofile:
+    for line in linesout:
+        print(line, file=ofile)
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index 1bbf877..7f23296 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -3446,9 +3446,8 @@
 
 lef
 
- masterslice pwell  substrate
- masterslice nwell  nwell
- masterslice poly   poly
+ masterslice pwell  pwell PWELL substrate
+ masterslice nwell  nwell NWELL
 
  routing li	li1 LI1 LI li
 
