diff --git a/salt/modules/mac_ports.py b/salt/modules/mac_ports.py
index <HASH>..<HASH> 100644
--- a/salt/modules/mac_ports.py
+++ b/salt/modules/mac_ports.py
@@ -306,13 +306,13 @@ def install(name=None, refresh=False, pkgs=None, **kwargs):
     if pkgs is None:
         version_num = kwargs.get('version')
         variant_spec = kwargs.get('variant')
-        spec = None
+        spec = {}
 
         if version_num:
-            spec = (spec or '') + '@' + version_num
+            spec['version'] = version_num
 
         if variant_spec:
-            spec = (spec or '') + variant_spec
+            spec['variant'] = variant_spec
 
         pkg_params = {name: spec}
 
@@ -321,7 +321,14 @@ def install(name=None, refresh=False, pkgs=None, **kwargs):
 
     formulas_array = []
     for pname, pparams in six.iteritems(pkg_params):
-        formulas_array.append(pname + (pparams or ''))
+        formulas_array.append(pname)
+
+        if pparams:
+            if 'version' in pparams:
+                formulas_array.append('@' + pparams['version'])
+
+            if 'variant' in pparams:
+                formulas_array.append(pparams['variant'])
 
     old = list_pkgs()
     cmd = ['port', 'install']
emit port cli version, variants as separate args