diff --git a/xos/core/models/network.py b/xos/core/models/network.py
index ccc248c..0dc6d4a 100644
--- a/xos/core/models/network.py
+++ b/xos/core/models/network.py
@@ -1,7 +1,7 @@
 import os
 import socket
 import sys
-from django.db import models
+from django.db import models, transaction
 from core.models import PlCoreBase, Site, Slice, Instance, Controller
 from core.models import ControllerLinkManager,ControllerLinkDeletionManager
 from django.contrib.contenttypes.models import ContentType
@@ -348,9 +348,17 @@
         with transaction.atomic():
             ap = AddressPool.objects.get(pk=self.pk)
             if ap.addresses:
-                parts = ap.addresses.split()
-                addr = parts.pop()
+                addresses = ap.addresses or ""
+                parts = addresses.split()
+                addr = parts.pop(0)
                 ap.addresses = " ".join(parts)
+
+                inuse = ap.inuse or ""
+                parts = inuse.split()
+                if not (addr in parts):
+                    parts.insert(0,addr)
+                    ap.inuse = " ".join(parts)
+
                 ap.save()
             else:
                 addr = None
@@ -359,9 +367,18 @@
     def put_address(self, addr):
         with transaction.atomic():
             ap = AddressPool.objects.get(pk=self.pk)
-            parts = ap.address.split()
+            addresses = ap.addresses or ""
+            parts = addresses.split()
             if addr not in parts:
-                parts.push(addr)
+                parts.insert(0,addr)
                 ap.addresses = " ".join(parts)
-                ap.save()
+
+            inuse = ap.inuse or ""
+            parts = inuse.split()
+            if addr in parts:
+                parts.remove(addr)
+                ap.inuse = " ".join(parts)
+
+            ap.save()
+
 
