diff --git a/plstackapi/core/api/subnets.py b/plstackapi/core/api/subnets.py
index 33a0269..6ef051e 100644
--- a/plstackapi/core/api/subnets.py
+++ b/plstackapi/core/api/subnets.py
@@ -11,7 +11,11 @@
     if isinstance(filter, int):
         subnets = Subnet.objects.filter(id=filter)
     elif isinstance(filter, StringTypes):
-        subnets = Subnet.objects.filter(name=filter)
+        # the name is the subnet's slice's name
+        slices = _get_slices(filter)
+        slice = None
+        if slices: slice=slices[0]
+        subnets = Subnet.objects.filter(slice=slice)
     elif isinstance(filter, dict):
         subnets = Subnet.objects.filter(**filter)
     else:
@@ -20,11 +24,11 @@
 
 def add_subnet(auth, fields):
     driver = OpenStackDriver(client = auth_check(auth))
-    slices = _get_slice(fields.get('slice')) 
+    slices = _get_slices(fields.get('slice')) 
     if slices: fields['slice'] = slices[0]     
     subnet = Subnet(**fields)
     # create quantum subnet
-    subnet = driver.create_subnet(network_name=subnet.name,
+    subnet = driver.create_subnet(network_name=subnet.slice.name,
                                   cidr_ip = subnet.cidr,
                                   ip_version=subnet.ip_version,
                                   start = subnet.start,
