diff --git a/app/inventory/forms.py b/app/inventory/forms.py
index ff8956343a17c248b22a52067ae4ec28e3f79534..008c72e5d89329228039633a73bdad17223b5c1b 100644
--- a/app/inventory/forms.py
+++ b/app/inventory/forms.py
@@ -9,10 +9,19 @@ This module defines the inventory blueprint forms.
 :license: BSD 2-Clause, see LICENSE for more details.
 
 """
+import re
 from flask_wtf import FlaskForm
-from wtforms import SelectField, StringField, SelectMultipleField, validators
+from wtforms import SelectField, StringField, validators
 from .. import utils, models
 
+MAC_ADDRESS_RE = re.compile('^(?:[0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$')
+
+
+def check_mac_addresses_list(form, field):
+    for address in field.data.split():
+        if MAC_ADDRESS_RE.match(address) is None:
+            raise validators.ValidationError('Invalid Mac address')
+
 
 class AttributeForm(FlaskForm):
     name = StringField('name', validators=[validators.DataRequired()])
@@ -29,7 +38,10 @@ class ItemForm(FlaskForm):
     location_id = SelectField('Location')
     status_id = SelectField('Status')
     parent_id = SelectField('Parent')
-    # macs = SelectMultipleField('Macs')
+    mac_addresses = StringField(
+        'MAC addresses',
+        description='space separated list of MAC addresses',
+        validators=[validators.Optional(), check_mac_addresses_list])
 
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
diff --git a/app/inventory/views.py b/app/inventory/views.py
index 6347dd4fdf1ae001ddca642ff0410089c62e4a71..33bf7a4b8bea65d84b1c7cd4cccee55bdb188666 100644
--- a/app/inventory/views.py
+++ b/app/inventory/views.py
@@ -81,6 +81,7 @@ def create_item():
                            location_id=form.location_id.data or None,
                            status_id=form.status_id.data or None,
                            parent_id=form.parent_id.data or None)
+        item.macs = [models.Mac(address=address) for address in form.mac_addresses.data.split()]
         current_app.logger.debug(f'Trying to create: {item!r}')
         db.session.add(item)
         try:
diff --git a/app/networks/forms.py b/app/networks/forms.py
index 0cbba4b7f20254db64aeba9680c05555725c0d00..cc36dcd600ea97300acd19c66dd1ec170315333a 100644
--- a/app/networks/forms.py
+++ b/app/networks/forms.py
@@ -10,7 +10,7 @@ This module defines the networks blueprint forms.
 
 """
 from flask_wtf import FlaskForm
-from wtforms import SelectField, StringField, SelectMultipleField, validators
+from wtforms import SelectField, StringField, validators
 from .. import utils, models
 
 
diff --git a/app/templates/inventory/create_item.html b/app/templates/inventory/create_item.html
index 3f0bfe04880e9e7264b4511685bb4aa687e72103..fca4dcd36cc72d6a0426ca8821f616000cd31711 100644
--- a/app/templates/inventory/create_item.html
+++ b/app/templates/inventory/create_item.html
@@ -24,6 +24,7 @@
     {{ render_field(form.location_id) }}
     {{ render_field(form.status_id) }}
     {{ render_field(form.parent_id) }}
+    {{ render_field(form.mac_addresses) }}
     <div class="form-group row">
       <div class="col-sm-10">
         <button type="submit" class="btn btn-primary">Submit</button>