diff --git a/src/emuvim/api/openstack/compute.py b/src/emuvim/api/openstack/compute.py
index 405fa6f..4d6517e 100755
--- a/src/emuvim/api/openstack/compute.py
+++ b/src/emuvim/api/openstack/compute.py
@@ -687,12 +687,6 @@
         :return: Returns the created port.
         :rtype: :class:`heat.resources.port`
         """
-        port = self.find_port_by_name_or_id(name)
-        if port is not None and not stack_operation:
-            LOG.warning(
-                "Creating port with name %s failed, as it already exists" % name)
-            raise Exception("Port with name %s already exists." % name)
-        LOG.debug("Creating port with name %s" % name)
         port = Port(name)
         if not stack_operation:
             self.ports[port.id] = port
@@ -708,12 +702,19 @@
         :return: Returns the port reference if it was found or None
         :rtype: :class:`heat.resources.port`
         """
+        # find by id
         if name_or_id in self.ports:
             return self.ports[name_or_id]
-        for port in self.ports.values():
-            if port.name == name_or_id or port.template_name == name_or_id:
-                return port
-
+        # find by name
+        matching_ports = filter(
+            lambda port: port.name == name_or_id or port.template_name == name_or_id,
+            self.ports.values()
+        )
+        matching_ports_count = len(matching_ports)
+        if matching_ports_count == 1:
+            return matching_ports[0]
+        if matching_ports_count > 1:
+            raise RuntimeError("Ambiguous port name %s" % name_or_id)
         return None
 
     def delete_port(self, name_or_id):
diff --git a/src/emuvim/api/openstack/openstack_dummies/neutron_dummy_api.py b/src/emuvim/api/openstack/openstack_dummies/neutron_dummy_api.py
index e094f0e..13698bd 100755
--- a/src/emuvim/api/openstack/openstack_dummies/neutron_dummy_api.py
+++ b/src/emuvim/api/openstack/openstack_dummies/neutron_dummy_api.py
@@ -816,10 +816,6 @@
                 num_ports = len(self.api.compute.ports)
                 name = "port:cp%s:man:%s" % (num_ports, str(uuid.uuid4()))
 
-            if self.api.compute.find_port_by_name_or_id(name):
-                return Response("Port with name %s already exists.\n" %
-                                name, status=500, mimetype='application/json')
-
             port = self.api.compute.create_port(name)
 
             port.net_name = net.name
diff --git a/src/emuvim/api/openstack/openstack_dummies/nova_dummy_api.py b/src/emuvim/api/openstack/openstack_dummies/nova_dummy_api.py
index e12fb05..12a9cc2 100755
--- a/src/emuvim/api/openstack/openstack_dummies/nova_dummy_api.py
+++ b/src/emuvim/api/openstack/openstack_dummies/nova_dummy_api.py
@@ -246,10 +246,10 @@
 
             if networks is not None:
                 for net in networks:
-                    port = self.api.compute.find_port_by_name_or_id(
-                        net.get('port', ""))
+                    port_name_or_id = net.get('port', "")
+                    port = self.api.compute.find_port_by_name_or_id(port_name_or_id)
                     if port is not None:
-                        server.port_names.append(port.name)
+                        server.port_names.append(port_name_or_id)
                     else:
                         return Response(
                             "Currently only networking by port is supported.", status=400)
