Corrected the other problem with the PNP bipolar, which is that
the model has a substrate pin defined, although the process
requires that the collector of the PNP must be tied to the
substrate, so the device cannot have an independent substrate.
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index 617b5ca..362e601 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -730,6 +730,11 @@
 	patch -p1 -f -d ${STAGING_PATH}/${SKY130A} \
 		< custom/patches/sky130_fd_pr_2.patch \
 		2>&1 | tee -a ${SKY130A}_make.log || true
+	# Custom:  Patch the models to remove the substrate pin from the PNP
+	# device, which has no independent substrate pin (collector=substrate)
+	patch -p4 -f -d ${STAGING_PATH}/${SKY130A}/libs.ref/${PR_SPICE} \
+		< custom/patches/sky130_fd_pr_3.patch \
+		2>&1 | tee -a ${SKY130A}_make.log || true
 	# Custom:  Add "spinit" file
 	cat ./custom/models/spinit >> \
 		${STAGING_PATH}/${SKY130A}/libs.tech/ngspice/spinit
diff --git a/sky130/custom/patches/sky130_fd_pr_3.patch b/sky130/custom/patches/sky130_fd_pr_3.patch
new file mode 100644
index 0000000..2ea440c
--- /dev/null
+++ b/sky130/custom/patches/sky130_fd_pr_3.patch
@@ -0,0 +1,37 @@
+diff -Naur sky130A/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__pnp_05v5_W0p68L0p68.model.spice sky130A_patched/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__pnp_05v5_W0p68L0p68.model.spice
+--- sky130A/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__pnp_05v5_W0p68L0p68.model.spice	2021-04-27 22:19:17.607243587 -0400
++++ sky130A_patched/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__pnp_05v5_W0p68L0p68.model.spice	2021-04-27 22:21:21.018900718 -0400
+@@ -21,12 +21,12 @@
+ *     vary  sky130_fd_pr__pnp_05v5_W0p68L0p68__is_slope dist=gauss std=0.01662
+ *   }
+ * }
+-.subckt  sky130_fd_pr__pnp_05v5_W0p68L0p68 c b e s
++.subckt  sky130_fd_pr__pnp_05v5_W0p68L0p68 c b e
+ + 
+ .param  mult = 1.0
+ + sky130_fd_pr__pnp_05v5_W0p68L0p68__bf_mm = {(19.35*dkbfpp*MC_SWITCH*AGAUSS(0,0.05537,1)/sqrt(mult))}
+ + sky130_fd_pr__pnp_05v5_W0p68L0p68__is_mm = {(1.5075e-018*dkispp*MC_SWITCH*AGAUSS(0,0.01662,1)/sqrt(mult))}
+-qsky130_fd_pr__pnp_05v5_W0p68L0p68 c b e s sky130_fd_pr__pnp_05v5_W0p68L0p68__model
++qsky130_fd_pr__pnp_05v5_W0p68L0p68 c b e c sky130_fd_pr__pnp_05v5_W0p68L0p68__model
+ .model sky130_fd_pr__pnp_05v5_W0p68L0p68__model pnp level = 1.0
+ * General Parameters
+ + tref = 30.0
+diff -Naur sky130A/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__pnp_05v5_W3p40L3p40.model.spice sky130A_patched/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__pnp_05v5_W3p40L3p40.model.spice
+--- sky130A/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__pnp_05v5_W3p40L3p40.model.spice	2021-04-27 22:19:17.627243532 -0400
++++ sky130A_patched/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__pnp_05v5_W3p40L3p40.model.spice	2021-04-27 22:22:07.562771406 -0400
+@@ -27,13 +27,13 @@
+ *     vary  sky130_fd_pr__pnp_05v5_W3p40L3p40__xti_slope dist=gauss std=0.06
+ *   }
+ * }
+-.subckt  sky130_fd_pr__pnp_05v5_W3p40L3p40 c b e s
++.subckt  sky130_fd_pr__pnp_05v5_W3p40L3p40 c b e
+ + 
+ .param  mult = 1.0
+ + sky130_fd_pr__pnp_05v5_W3p40L3p40__bf_mm = {(16.603*dkbfpp5x*sky130_fd_pr__pnp_05v5_W3p40L3p40__bf_slope*0.45/sqrt(mult))}
+ + sky130_fd_pr__pnp_05v5_W3p40L3p40__is_mm = {(7.1190e-018*1.00*dkispp5x*sky130_fd_pr__pnp_05v5_W3p40L3p40__is_slope*0.13/sqrt(mult))}
+ + sky130_fd_pr__pnp_05v5_W3p40L3p40__xti_mm = {(5*sky130_fd_pr__pnp_05v5_W3p40L3p40__xti_slope/sqrt(mult))}
+-qsky130_fd_pr__pnp_05v5_W3p40L3p40 c b e s sky130_fd_pr__pnp_05v5_W3p40L3p40__model
++qsky130_fd_pr__pnp_05v5_W3p40L3p40 c b e c sky130_fd_pr__pnp_05v5_W3p40L3p40__model
+ .model sky130_fd_pr__pnp_05v5_W3p40L3p40__model pnp level = 1.0
+ * General Parameters
+ + tref = 30 subs = 1.0