Index: /trunk/src/VBox/NetworkServices/DHCP/VBoxNetDHCP.cpp
===================================================================
--- /trunk/src/VBox/NetworkServices/DHCP/VBoxNetDHCP.cpp	(revision 49836)
+++ /trunk/src/VBox/NetworkServices/DHCP/VBoxNetDHCP.cpp	(revision 49837)
@@ -86,5 +86,5 @@
  * DHCP server instance.
  */
-class VBoxNetDhcp: public VBoxNetBaseService
+class VBoxNetDhcp: public VBoxNetBaseService, public NATNetworkEventAdapter
 {
 public:
@@ -109,4 +109,5 @@
     int initNoMain();
     int initWithMain();
+    HRESULT HandleEvent(VBoxEventType_T aEventType, IEvent *pEvent);
     int fetchAndUpdateDnsInfo();
 
@@ -128,4 +129,6 @@
     ComPtr<INATNetwork> m_NATNetwork;
 
+    /** Listener for Host DNS changes */
+    ComPtr<NATNetworkListenerImpl> m_vboxListener;
     /*
      * We will ignore cmd line parameters IFF there will be some DHCP specific arguments
@@ -502,4 +505,9 @@
     AssertMsgRCReturn(rc, ("Wasn't able to fetch Dns info"), rc);
 
+    ComEventTypeArray aVBoxEvents;
+    aVBoxEvents.push_back(VBoxEventType_OnHostNameResolutionConfigurationChange);
+    rc = createNatListener(m_vboxListener, virtualbox, this, aVBoxEvents);
+    AssertRCReturn(rc, rc);
+
     com::Bstr strUpperIp, strLowerIp;
     
@@ -510,5 +518,4 @@
     AssertComRCReturn(hrc, VERR_INTERNAL_ERROR);
     RTNetStrToIPv4Addr(com::Utf8Str(strUpperIp).c_str(), &UpperAddress);
-
 
     hrc = m_DhcpServer->COMGETTER(LowerIP)(strLowerIp.asOutParam());
@@ -572,4 +579,17 @@
     
     return VINF_SUCCESS;
+}
+
+
+HRESULT VBoxNetDhcp::HandleEvent(VBoxEventType_T aEventType, IEvent *pEvent)
+{
+    switch(aEventType)
+    {
+        case VBoxEventType_OnHostNameResolutionConfigurationChange:
+            fetchAndUpdateDnsInfo();
+            break;
+    }
+
+    return S_OK;
 }
 
