diff --git a/planetstack/openstack_observer/steps/sync_sliver_ips.py b/planetstack/openstack_observer/steps/sync_sliver_ips.py
index bd1d572..8ce78f0 100644
--- a/planetstack/openstack_observer/steps/sync_sliver_ips.py
+++ b/planetstack/openstack_observer/steps/sync_sliver_ips.py
@@ -4,6 +4,7 @@
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.sliver import Sliver
+from util.logger import Logger, logging
 
 class SyncSliverIps(OpenStackSyncStep):
     provides=[Sliver]
@@ -17,16 +18,29 @@
         return slivers
 
     def sync_record(self, sliver):
-        driver = self.driver.client_driver(tenant=sliver.slice.name, 
-                                           deployment=sliver.node.deployment.name)  
+        driver = self.driver.client_driver(tenant=sliver.slice.name,
+                                           deployment=sliver.node.deployment.name)
         servers = driver.shell.nova.servers.findall(id=sliver.instance_id)
         if not servers:
             return
         server = servers[0]
-        ips = server.addresses.get(sliver.slice.name, [])
-        if not ips:
-            return
-        sliver.ip = ips[0]['addr']
-        if sliver.ip:
+
+        # First try to grab the dedicated public address
+        # NOTE: "ext-net" is hardcoded here.
+        ip = None
+        ext_net_addrs = server.addresses.get("ext-net")
+        if ext_net_addrs:
+            ip = ext_net_addrs[0]["addr"]
+
+        # If there was no public address, then grab the first address in the
+        # list.
+        if not ip:
+            if server.addresses:
+                addrs = server.addresses.values()[0]
+                if addrs:
+                    ip = addrs[0]["addr"]
+
+        if ip and ip!=sliver.ip:
+            sliver.ip = ip
             sliver.save()
-            logger.info("saved sliver ip: %s %s" % (sliver, ips[0]))
+            logger.info("saved sliver ip: %s %s" % (sliver, ip))
