diff --git a/VERSION b/VERSION
index c9b46ab..266bc23 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.536
+1.0.537
diff --git a/gf180mcu/magic/gf180mcu.tcl b/gf180mcu/magic/gf180mcu.tcl
index 80035eb..c466abc 100644
--- a/gf180mcu/magic/gf180mcu.tcl
+++ b/gf180mcu/magic/gf180mcu.tcl
@@ -3350,6 +3350,7 @@
 
 proc gf180mcu::mos_convert {parameters} {
     set pdkparams [dict create]
+    set nf 1
     dict for {key value} $parameters {
 	switch -nocase $key {
 	    l -
@@ -3362,20 +3363,46 @@
 	    }
 	    m {
 		# M value in an expression like '1*1' convert to
-		# M and NF
-		if {[regexp {\'([0-9]+)\*([0-9]+)\'} $value valid m nf]} {
-		    dict set pdkparams [string tolower $key] $m
-		    dict set pdkparams nf $nf
+		# NF and M, and do not overlap fingers.
+		if {[regexp {\'([0-9]+)\*([0-9]+)\'} $value valid mx my]} {
+		    dict set pdkparams [string tolower $key] $my
 		} else {
 		    dict set pdkparams [string tolower $key] $value
 		}
 	    }
+	    nf {
+		# Adjustment of W will be handled after parsing
+		dict set pdkparams $key $value
+	    }
 	    default {
 		# Allow unrecognized parameters to be passed unmodified
 		dict set pdkparams $key $value
 	    }
 	}
     }
+
+    # Magic does not understand "nf" as a parameter, but expands to
+    # "nf" number of devices connected horizontally.  The "w" value
+    # must be divided down accordingly, as the "nf" parameter implies
+    # that the total width "w" is divided into "nf" fingers.
+
+    catch {
+	set w [dict get $pdkparams w]
+	set nf [dict get $pdkparams nf]
+	if {$nf > 1} {
+	    dict set pdkparams w [expr $w / $nf]
+	}
+    }
+    catch {
+	set nf [expr $nf * $mx]
+	if {$nf > 1} {
+	    dict set pdkparams nf $nf
+	}
+	if {$mx > 1} {
+	    dict set pdkparams doverlap 0
+	}
+    }
+
     return $pdkparams
 }
 
