diff --git a/autobuild.xml b/autobuild.xml
index 54a92a20798fb8156509b76d6a390e1ec623358b..45577e037398e1803281a5d7b10df4929bc73f49 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -1472,6 +1472,38 @@
         <key>version</key>
         <string>1.0</string>
       </map>
+      <key>llphysicsextensions_tpv</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (c) 2010, Linden Research, Inc.</string>
+        <key>license</key>
+        <string>commercial</string>
+        <key>license_file</key>
+        <string>LICENSES/llphysicsextensions.txt</string>
+        <key>name</key>
+        <string>llphysicsextensions_tpv</string>
+        <key>platforms</key>
+        <map>
+          <key>windows64</key>
+          <map>
+            <key>archive</key>
+            <map>
+              <key>hash</key>
+              <string>9c39018c783443ee4b4eb368c937aeb3</string>
+              <key>hash_algorithm</key>
+              <string>md5</string>
+              <key>url</key>
+              <string>file://c:/bld/havok/llphysicsextensions_tpv-1.0.571939-windows64-571939.tar.bz2</string>
+            </map>
+            <key>name</key>
+            <string>windows64</string>
+          </map>
+        </map>
+        <key>source_type</key>
+        <string>hg</string>
+        <key>version</key>
+        <string>1.0.571939</string>
+      </map>
       <key>minizip-ng</key>
       <map>
         <key>canonical_repo</key>
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 87c10b8f033eb2752d793023091b2df13cd32bf4..2160d7230bc72124ab161ebb23f67c518cab2795 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -356,6 +356,10 @@ else()
   add_definitions(-URELEASE_SHOW_ASSERT)
 endif()
 
+if(HAVOK_TPV)
+  add_definitions(-DHAVOK_BUILD=1)
+endif(HAVOK_TPV)
+
 option(ENABLE_TIMING "Enable all fast timers" ON)
 if(ENABLE_TIMING)
   add_definitions(-DAL_ENABLE_ALL_TIMERS=1)
diff --git a/indra/llcommon/lluuid.h b/indra/llcommon/lluuid.h
index 165c8a071a14129ee24d634277020add656fe700..78c4bd52c670fe65b65bdcafd068a96628461f63 100644
--- a/indra/llcommon/lluuid.h
+++ b/indra/llcommon/lluuid.h
@@ -58,9 +58,15 @@ class LL_COMMON_API LLUUID
 	// CREATORS
 	//
 	LLUUID() = default;
+#if HAVOK_BUILD
+	LLUUID(const LLUUID& rhs) { memcpy(mData, rhs.mData, UUID_BYTES); }
+	~LLUUID() {}
+#endif
 	explicit LLUUID(const char *in_string); // Convert from string.
 	explicit LLUUID(const std::string_view in_string); // Convert from string.
 
+
+
 	//
 	// MANIPULATORS
 	//
@@ -265,9 +271,11 @@ class LL_COMMON_API LLUUID
 
 	U8 mData[UUID_BYTES] = {};
 };
+#ifndef HAVOK_BUILD
 static_assert(std::is_trivially_copyable<LLUUID>::value, "LLUUID must be trivial copy");
 static_assert(std::is_trivially_move_assignable<LLUUID>::value, "LLUUID must be trivial move");
 static_assert(std::is_standard_layout<LLUUID>::value, "LLUUID must be a standard layout type");
+#endif
 
 typedef std::vector<LLUUID> uuid_vec_t;
 typedef std::set<LLUUID> uuid_set_t;