Index: sasmodels/compare.py
===================================================================
--- sasmodels/compare.py	(revision bd7630de7da8bd67aa24b8fc036b2dcc1bc72a16)
+++ sasmodels/compare.py	(revision 610ef23645ef28d7c1e8c87aab1e03c8cd123a93)
@@ -368,5 +368,5 @@
 
     # Limit magnetic SLDs to a smaller range, from zero to iron=5/A^2
-    if par.name.startswith('M0:'):
+    if par.name.endswith('_M0'):
         return np.random.uniform(0, 5)
 
@@ -538,5 +538,5 @@
     magnetic_pars = []
     for p in parameters.user_parameters(pars, is2d):
-        if any(p.id.startswith(x) for x in ('M0:', 'mtheta:', 'mphi:')):
+        if any(p.id.endswith(x) for x in ('_M0', '_mtheta', '_mphi')):
             continue
         if p.id.startswith('up:'):
@@ -550,7 +550,7 @@
             pdtype=pars.get(p.id+"_pd_type", 'gaussian'),
             relative_pd=p.relative_pd,
-            M0=pars.get('M0:'+p.id, 0.),
-            mphi=pars.get('mphi:'+p.id, 0.),
-            mtheta=pars.get('mtheta:'+p.id, 0.),
+            M0=pars.get(p.id+'_M0', 0.),
+            mphi=pars.get(p.id+'_mphi', 0.),
+            mtheta=pars.get(p.id+'_mtheta', 0.),
         )
         lines.append(_format_par(p.name, **fields))
@@ -618,5 +618,5 @@
     if suppress:
         for p in pars:
-            if p.startswith("M0:"):
+            if p.endswith("_M0"):
                 pars[p] = 0
     else:
@@ -624,5 +624,5 @@
         first_mag = None
         for p in pars:
-            if p.startswith("M0:"):
+            if p.endswith("_M0"):
                 any_mag |= (pars[p] != 0)
                 if first_mag is None:
Index: sasmodels/convert.py
===================================================================
--- sasmodels/convert.py	(revision a69d8cd7ece8a1df933b123d2e032197783d80b4)
+++ sasmodels/convert.py	(revision 610ef23645ef28d7c1e8c87aab1e03c8cd123a93)
@@ -165,5 +165,23 @@
     if version == (3, 1, 2):
         oldpars = _hand_convert_3_1_2_to_4_1(name, oldpars)
+    if version < (4, 2, 0):
+        oldpars = _rename_magnetic_pars(oldpars)
     return oldpars
+
+def _rename_magnetic_pars(pars):
+    """
+    Change from M0:par to par_M0, etc.
+    """
+    keys = list(pars.items())
+    for k in keys:
+        if k.startswith('M0:'):
+            pars[k[3:]+'_M0'] = pars.pop(k)
+        elif k.startswith('mtheta:'):
+            pars[k[7:]+'_mtheta'] = pars.pop(k)
+        elif k.startswith('mphi:'):
+            pars[k[5:]+'_mphi'] = pars.pop(k)
+        elif k.startswith('up:'):
+            pars['up_'+k[3:]] = pars.pop(k)
+    return pars
 
 def _hand_convert_3_1_2_to_4_1(name, oldpars):
Index: sasmodels/modelinfo.py
===================================================================
--- sasmodels/modelinfo.py	(revision d321747456846675ebcfb426f57c90d80040210d)
+++ sasmodels/modelinfo.py	(revision 610ef23645ef28d7c1e8c87aab1e03c8cd123a93)
@@ -466,5 +466,5 @@
         self.is_asymmetric = any(p.name == 'psi' for p in self.kernel_parameters)
         self.magnetism_index = [k for k, p in enumerate(self.call_parameters)
-                                if p.id.startswith('M0:')]
+                                if p.id.endswith('_M0')]
 
         self.pd_1d = set(p.name for p in self.call_parameters
@@ -586,9 +586,9 @@
         if self.nmagnetic > 0:
             full_list.extend([
-                Parameter('up:frac_i', '', 0., [0., 1.],
+                Parameter('up_frac_i', '', 0., [0., 1.],
                           'magnetic', 'fraction of spin up incident'),
-                Parameter('up:frac_f', '', 0., [0., 1.],
+                Parameter('up_frac_f', '', 0., [0., 1.],
                           'magnetic', 'fraction of spin up final'),
-                Parameter('up:angle', 'degrees', 0., [0., 360.],
+                Parameter('up_angle', 'degrees', 0., [0., 360.],
                           'magnetic', 'spin up angle'),
             ])
@@ -596,9 +596,9 @@
             for p in slds:
                 full_list.extend([
-                    Parameter('M0:'+p.id, '1e-6/Ang^2', 0., [-np.inf, np.inf],
+                    Parameter(p.id+'_M0', '1e-6/Ang^2', 0., [-np.inf, np.inf],
                               'magnetic', 'magnetic amplitude for '+p.description),
-                    Parameter('mtheta:'+p.id, 'degrees', 0., [-90., 90.],
+                    Parameter(p.id+'_mtheta', 'degrees', 0., [-90., 90.],
                               'magnetic', 'magnetic latitude for '+p.description),
-                    Parameter('mphi:'+p.id, 'degrees', 0., [-180., 180.],
+                    Parameter(p.id+'_mphi', 'degrees', 0., [-180., 180.],
                               'magnetic', 'magnetic longitude for '+p.description),
                 ])
@@ -640,6 +640,6 @@
 
         Parameters marked as sld will automatically have a set of associated
-        magnetic parameters (m0:p, mtheta:p, mphi:p), as well as polarization
-        information (up:theta, up:frac_i, up:frac_f).
+        magnetic parameters (p_M0, p_mtheta, p_mphi), as well as polarization
+        information (up_theta, up_frac_i, up_frac_f).
         """
         # control parameters go first
@@ -668,7 +668,7 @@
             result.append(expanded_pars[name])
             if is2d:
-                for tag in 'M0:', 'mtheta:', 'mphi:':
-                    if tag+name in expanded_pars:
-                        result.append(expanded_pars[tag+name])
+                for tag in '_M0', '_mtheta', '_mphi':
+                    if name+tag in expanded_pars:
+                        result.append(expanded_pars[name+tag])
 
         # Gather the user parameters in order
@@ -703,9 +703,9 @@
                 append_group(p.id)
 
-        if is2d and 'up:angle' in expanded_pars:
+        if is2d and 'up_angle' in expanded_pars:
             result.extend([
-                expanded_pars['up:frac_i'],
-                expanded_pars['up:frac_f'],
-                expanded_pars['up:angle'],
+                expanded_pars['up_frac_i'],
+                expanded_pars['up_frac_f'],
+                expanded_pars['up_angle'],
             ])
 
Index: sasmodels/sasview_model.py
===================================================================
--- sasmodels/sasview_model.py	(revision d321747456846675ebcfb426f57c90d80040210d)
+++ sasmodels/sasview_model.py	(revision 610ef23645ef28d7c1e8c87aab1e03c8cd123a93)
@@ -884,5 +884,5 @@
     Model = _make_standard_model('sphere')
     model = Model()
-    model.setParam('M0:sld', 8)
+    model.setParam('sld_M0', 8)
     q = np.linspace(-0.35, 0.35, 500)
     qx, qy = np.meshgrid(q, q)
