diff --git a/xos/synchronizer/event_steps/dhcp_event.py b/xos/synchronizer/event_steps/dhcp_event.py
index ddd1e31..74a7696 100644
--- a/xos/synchronizer/event_steps/dhcp_event.py
+++ b/xos/synchronizer/event_steps/dhcp_event.py
@@ -43,16 +43,5 @@
         si.dhcp_state = value["messageType"];
         si.ip_address = value["ipAddress"];
         si.mac_address = value["macAddress"];
+
         si.save_changed_fields(always_update_timestamp=True)
-        # subscriber = RCORDSubscriber.objects.get(onu_device=onu_sn)
-        #
-        #
-        # # NOTE it will be better to update the SI and use the model policy to update the subscriber,
-        # # if this fails for any reason the event is lost
-        #
-        # if value["messageType"] == "DHCPACK":
-        #
-        #     # FIXME apparently it's always saving
-        #     subscriber.ip_address = value["ipAddress"]
-        #     subscriber.mac_address = value["macAddress"]
-        #     subscriber.save()
diff --git a/xos/synchronizer/model_policies/model_policy_att_workflow_driver_serviceinstance.py b/xos/synchronizer/model_policies/model_policy_att_workflow_driver_serviceinstance.py
index d3195e0..3fb05dd 100644
--- a/xos/synchronizer/model_policies/model_policy_att_workflow_driver_serviceinstance.py
+++ b/xos/synchronizer/model_policies/model_policy_att_workflow_driver_serviceinstance.py
@@ -15,7 +15,7 @@
 
 
 
-from synchronizers.new_base.modelaccessor import RCORDSubscriber, ONUDevice, model_accessor
+from synchronizers.new_base.modelaccessor import RCORDSubscriber, RCORDIpAddress, ONUDevice, model_accessor
 from synchronizers.new_base.policy import Policy
 
 import os
@@ -83,6 +83,25 @@
             self.logger.debug("MODEL_POLICY: subscriber does not exists for this SI, doing nothing", onu_device=serial_number)
             return None
 
+    def update_subscriber_ip(self, subscriber, ip):
+        # TODO check if the subscriber has an IP and update it,
+        # or create a new one
+        try:
+            ip = RCORDIpAddress.objects.filter(
+                subscriber_id=subscriber.id,
+                ip=ip
+            )[0]
+            self.logger.debug("MODEL_POLICY: found existing RCORDIpAddress for subscriber", onu_device=subscriber.onu_device, subscriber_status=subscriber.status, ip=ip)
+            ip.save_changed_fields()
+        except IndexError:
+            self.logger.debug("MODEL_POLICY: Creating new RCORDIpAddress for subscriber", onu_device=subscriber.onu_device, subscriber_status=subscriber.status, ip=ip)
+            ip = RCORDIpAddress(
+                subscriber_id=subscriber.id,
+                ip=ip,
+                description="DHCP Assigned IP Address"
+            )
+            ip.save()
+
     def update_subscriber(self, subscriber, si):
         cur_status = subscriber.status
         if si.authentication_state == "AWAITING":
@@ -107,7 +126,8 @@
         if cur_status != subscriber.status or si.dhcp_state == "DHCPACK":
             self.logger.debug("MODEL_POLICY: updating subscriber", onu_device=subscriber.onu_device, authentication_state=si.authentication_state, subscriber_status=subscriber.status)
             if si.ip_address and si.mac_address:
-                subscriber.ip_address = si.ip_address
+                # subscriber.ip_address = si.ip_address
+                self.update_subscriber_ip(subscriber, si.ip_address)
                 subscriber.mac_address = si.mac_address
             subscriber.save_changed_fields(always_update_timestamp=True)
         else:
diff --git a/xos/synchronizer/model_policies/test_model_policy_att_workflow_driver_serviceinstance.py b/xos/synchronizer/model_policies/test_model_policy_att_workflow_driver_serviceinstance.py
index 306094c..be5461f 100644
--- a/xos/synchronizer/model_policies/test_model_policy_att_workflow_driver_serviceinstance.py
+++ b/xos/synchronizer/model_policies/test_model_policy_att_workflow_driver_serviceinstance.py
@@ -240,22 +240,57 @@
             self.policy.update_subscriber(sub, self.si)
             sub_save.assert_not_called()
 
-    def test_update_subscriber_dhcp(self):
+    def test_update_subscriber_dhcp_with_exiting_ip(self):
         sub = RCORDSubscriber(
+            id=10,
+            onu_device="BRCM1234"
+        )
+
+        ip = RCORDIpAddress(
+            subscriber_id=sub.id,
+            ip='10.11.2.23'
+        )
+
+        self.si.dhcp_state = "DHCPACK"
+        self.si.ip_address = "10.11.2.23"
+        self.si.mac_address = "4321"
+
+        with patch.object(sub, "save") as sub_save, \
+            patch.object(RCORDIpAddress.objects, "get_items") as get_ips, \
+            patch.object(ip, "save_changed_fields") as ip_mock:
+
+            get_ips.return_value = [ip]
+            ip_mock.return_value = []
+
+            self.policy.update_subscriber(sub, self.si)
+            sub_save.assert_called()
+            self.assertEqual(sub.mac_address, self.si.mac_address)
+
+            ip_mock.assert_called_with()
+
+    def test_update_subscriber_dhcp_with_new_ip(self):
+        sub = RCORDSubscriber(
+            id=10,
             onu_device="BRCM1234"
         )
 
         self.si.dhcp_state = "DHCPACK"
-        self.si.ip_address = "1234"
+        self.si.ip_address = "10.11.2.23"
         self.si.mac_address = "4321"
 
-        with patch.object(sub, "save") as sub_save:
+        with patch.object(sub, "save") as sub_save, \
+            patch.object(RCORDIpAddress, "save", autospec=True) as ip_mock:
+
+            ip_mock.return_value = []
+
             self.policy.update_subscriber(sub, self.si)
             sub_save.assert_called()
             self.assertEqual(sub.mac_address, self.si.mac_address)
-            self.assertEqual(sub.ip_address, self.si.ip_address)
 
-
+            saved_ip = ip_mock.call_args[0][0]
+            self.assertEqual(saved_ip.ip, self.si.ip_address)
+            self.assertEqual(saved_ip.subscriber_id, sub.id)
+            self.assertEqual(saved_ip.description, "DHCP Assigned IP Address")
 
     def test_handle_update_subscriber(self):
         self.si.onu_state = "DISABLED"
