Index: /source/ariba/utility/transport/tcpip/protlib/address.cpp
===================================================================
--- /source/ariba/utility/transport/tcpip/protlib/address.cpp	(revision 9990)
+++ /source/ariba/utility/transport/tcpip/protlib/address.cpp	(revision 9991)
@@ -91,8 +91,8 @@
 	  Log(DEBUG_LOG,LOG_NORMAL,"hostaddress","::operator==()" << haddr->get_ip_str()<<"=="<<this->get_ip_str());
 	  if (!ipv4flag)
-	    Log(DEBUG_LOG,LOG_NORMAL,"hostaddress","::operator==(), v6=" << IN6_ARE_ADDR_EQUAL(ipv6addr.s6_addr, haddr->ipv6addr.s6_addr));
+	    Log(DEBUG_LOG,LOG_NORMAL,"hostaddress","::operator==(), v6=" << IN6_ARE_ADDR_EQUAL(&ipv6addr, &(haddr->ipv6addr)));
 #endif
 	  return ipv4flag ? (ipv4addr.s_addr==haddr->ipv4addr.s_addr) :
-	                    IN6_ARE_ADDR_EQUAL(ipv6addr.s6_addr, haddr->ipv6addr.s6_addr);
+	                    IN6_ARE_ADDR_EQUAL(&ipv6addr, &(haddr->ipv6addr));
 	} else return false;
 } // end operator==
@@ -177,5 +177,5 @@
 bool hostaddress::is_ip_unspec() const {
 	if (ipv4flag) return (ipv4addr.s_addr==0);
-	else return IN6_IS_ADDR_UNSPECIFIED(ipv6addr.s6_addr);
+	else return IN6_IS_ADDR_UNSPECIFIED(&ipv6addr);
 	// never reached
 	return true;
@@ -225,5 +225,5 @@
 		in = ipv4addr;
 		return true;
-	} else if (IN6_IS_ADDR_V4MAPPED(ipv6addr.s6_addr)) {
+	} else if (IN6_IS_ADDR_V4MAPPED(&ipv6addr)) {
 		memcpy(&(in.s_addr),ipv6addr.s6_addr+12,4);
 		return true;
Index: /source/ariba/utility/transport/tcpip/protlib/address.h
===================================================================
--- /source/ariba/utility/transport/tcpip/protlib/address.h	(revision 9990)
+++ /source/ariba/utility/transport/tcpip/protlib/address.h	(revision 9991)
@@ -1306,5 +1306,5 @@
 hostaddress::is_mapped_ip() const
 {
-  return (ipv4flag) ? false : IN6_IS_ADDR_V4MAPPED(ipv6addr.s6_addr);
+  return (ipv4flag) ? false : IN6_IS_ADDR_V4MAPPED(&ipv6addr);
 } // end is_mapped_ip
 
Index: /source/ariba/utility/transport/tcpip/protlib/eclock_gettime.c
===================================================================
--- /source/ariba/utility/transport/tcpip/protlib/eclock_gettime.c	(revision 9990)
+++ /source/ariba/utility/transport/tcpip/protlib/eclock_gettime.c	(revision 9991)
@@ -38,5 +38,4 @@
 /* struct timezone tz = { 0, DST_NONE }; */
 static struct timeval tv;
-typedef int             clockid_t;
 
 /* syntax for clock_gettime:
Index: /source/ariba/utility/transport/tcpip/protlib/fastqueue.c
===================================================================
--- /source/ariba/utility/transport/tcpip/protlib/fastqueue.c	(revision 9990)
+++ /source/ariba/utility/transport/tcpip/protlib/fastqueue.c	(revision 9991)
@@ -58,8 +58,4 @@
 #define qerr(errnr)      fprintf(stderr,"queue.c: %s\n",queue_errmsg[errnr])
 
-#ifdef __linux__
-
-// not needed for Linux
-//#define pthread_mutexattr_settype pthread_mutexattr_setkind_np
 
 #define PTHREAD_MUTEX_NORMAL PTHREAD_MUTEX_TIMED_NP
@@ -74,10 +70,4 @@
 #define clock_gettime(clock_id, tspec) eclock_gettime(tspec)
 
-#elif _DECTHREADS_VERSION < 314126L
-
-#define pthread_mutexattr_settype pthread_mutexattr_settype_np
-#define PTHREAD_MUTEX_NORMAL PTHREAD_MUTEX_NORMAL_NP
-#define PTHREAD_MUTEX_ERRORCHECK PTHREAD_MUTEX_ERRORCHECK_NP
-#endif
                  /*************** typedefs *****************/
 
Index: /source/ariba/utility/transport/tcpip/protlib/logfile.h
===================================================================
--- /source/ariba/utility/transport/tcpip/protlib/logfile.h	(revision 9990)
+++ /source/ariba/utility/transport/tcpip/protlib/logfile.h	(revision 9991)
@@ -53,12 +53,10 @@
 namespace log {
 
-    static const pthread_mutex_t initlogmutex=
-#ifdef _DEBUG
-  // PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP; // use this for debugging, it will return errors on potential deadlock situations
-  PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-#else // should be recursive mutex because sometimes error log output sometimes occurs
-  // while objects contents are logged
-  PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; // PTHREAD_MUTEX_INITIALIZER;
-#endif
+static const pthread_mutex_t initlogmutex=
+    #ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
+		PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+    #else
+        PTHREAD_RECURSIVE_MUTEX_INITIALIZER;
+    #endif
 
 #undef ERROR_LOG
Index: /source/ariba/utility/transport/tcpip/protlib/threads.h
===================================================================
--- /source/ariba/utility/transport/tcpip/protlib/threads.h	(revision 9990)
+++ /source/ariba/utility/transport/tcpip/protlib/threads.h	(revision 9991)
@@ -71,6 +71,10 @@
 template <class T> void *thread_starter(void *thread_object) {
 
+#ifdef PTHREAD_CANCEL_ENABLE
 	pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
+#endif
+#ifdef PTHREAD_CANCEL_DEFERRED
 	pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL);
+#endif
 
 	(static_cast<T*>(thread_object))->start_processing();
@@ -537,8 +541,11 @@
 		thread_object.unlock();
 		if (kill) {
+
+#ifdef PTHREAD_CANCEL_ENABLE
 			for (unsigned i = 0; i < pthreads.size(); i++) 
 				pthread_cancel( pthreads[i] );
 
 			sleepuntilstop();
+#endif
 
 			for (unsigned i = 0; i < pthreads.size(); i++) 
Index: /source/ariba/utility/transport/tcpip/protlib/tp_over_udp.cpp
===================================================================
--- /source/ariba/utility/transport/tcpip/protlib/tp_over_udp.cpp	(revision 9990)
+++ /source/ariba/utility/transport/tcpip/protlib/tp_over_udp.cpp	(revision 9991)
@@ -41,4 +41,9 @@
 #include <arpa/inet.h>		/* inet_addr */
 
+#ifndef IPPROTO_IPV6
+	// v6 structs not defined in netinet/in.h, pull in here
+	#include <linux/ipv6.h>
+#endif
+
 #include <fcntl.h>
 #include <sys/poll.h>
