          if (!mHostRecord->addr) {
              // Both mHostRecord->addr_info and mHostRecord->addr are null.
              // This can happen if mHostRecord->addr_info expired and the
-@@ -152,8 +271,8 @@ nsDNSRecord::GetNextAddr(PRUint16 port, PRNetAddr *addr)
+@@ -152,8 +190,8 @@ nsDNSRecord::GetNextAddr(PRUint16 port, PRNetAddr *addr)
              addr->ipv6.port = port;
          mDone = PR_TRUE; // no iterations
      }

             // add to mEvictionQ
             PR_APPEND_LINK(rec, &mEvictionQ);
             NS_ADDREF(rec);
@@ -686,23 +655,26 @@ nsHostResolver::ThreadFunc(void *arg)
 
     nsHostResolver *resolver = (nsHostResolver *) arg;
     nsHostRecord *rec;

 
     // socket methods (these can only be called on the socket thread):
 
diff --git a/netwerk/build/Makefile.in b/netwerk/build/Makefile.in
index eba1bdc..274609c 100644
--- a/netwerk/build/Makefile.in
+++ b/netwerk/build/Makefile.in
@@ -127,6 +127,8 @@ EXTRA_DSO_LDOPTS += \
 	$(NULL)
 endif
 
+EXTRA_DSO_LDOPTS += -lobstcp
+
 ifeq ($(OS_ARCH),AIX)
 EXTRA_DSO_LDOPTS += -lodm -lcfg
 endif
diff --git a/netwerk/dns/public/nsIDNSRecord.idl b/netwerk/dns/public/nsIDNSRecord.idl
index 4e6d68f..71b7b1f 100644
--- a/netwerk/dns/public/nsIDNSRecord.idl
