--- sal/cpprt/operators_new_delete.cxx.orig	2014-09-19 17:58:40 UTC
+++ sal/cpprt/operators_new_delete.cxx
@@ -68,7 +68,7 @@ struct AllocatorTraits
 	{
 		n = std::max(n, std::size_t(1));
 #if OSL_DEBUG_LEVEL > 0
-		n += sizeof(signature_type);
+		n += 2*sizeof(signature_type);
 #endif  /* OSL_DEBUG_LEVEL  */
 		return n;
 	}
@@ -77,7 +77,7 @@ struct AllocatorTraits
 	{
 #if OSL_DEBUG_LEVEL > 0
 		memcpy (p, m_signature, sizeof(signature_type));
-		p = static_cast<char*>(p) + sizeof(signature_type);
+		p = static_cast<char*>(p) + 2*sizeof(signature_type);
 #endif  /* OSL_DEBUG_LEVEL */
 		return p;
 	}
@@ -85,7 +85,7 @@ struct AllocatorTraits
 	void* fini (void * p) const SAL_THROW(())
 	{
 #if OSL_DEBUG_LEVEL > 0
-		p = static_cast<char*>(p) - sizeof(signature_type);
+		p = static_cast<char*>(p) - 2*sizeof(signature_type);
 		if (memcmp (p, m_signature, sizeof(signature_type)) != 0)
 		{
 			OSL_ENSURE(0, "operator delete mismatch");
--- sal/rtl/source/alloc_cache.c.orig	2016-06-21 21:57:07 UTC
+++ sal/rtl/source/alloc_cache.c
@@ -894,7 +894,9 @@ rtl_cache_activate (
 		if (objalign == 0)
 		{
 			/* determine default alignment */
-			if (objsize >= RTL_MEMORY_ALIGNMENT_8)
+			if (objsize >= RTL_MEMORY_ALIGNMENT_16)
+				objalign = RTL_MEMORY_ALIGNMENT_16;
+			else if (objsize >= RTL_MEMORY_ALIGNMENT_8)
 				objalign = RTL_MEMORY_ALIGNMENT_8;
 			else
 				objalign = RTL_MEMORY_ALIGNMENT_4;
--- sal/rtl/source/alloc_global.c.orig	2016-06-21 21:57:06 UTC
+++ sal/rtl/source/alloc_global.c
@@ -75,8 +75,8 @@ static rtl_cache_type * g_alloc_caches[R
 	0,
 };
 
-#define RTL_MEMALIGN       8
-#define RTL_MEMALIGN_SHIFT 3
+#define RTL_MEMALIGN       16
+#define RTL_MEMALIGN_SHIFT 4
 
 static rtl_cache_type * g_alloc_table[RTL_MEMORY_CACHED_LIMIT >> RTL_MEMALIGN_SHIFT] =
 {
--- sal/rtl/source/alloc_impl.h.orig	2014-09-19 17:59:16 UTC
+++ sal/rtl/source/alloc_impl.h
@@ -45,6 +45,12 @@ extern "C" {
 #define RTL_MEMORY_ALIGNMENT_8 sizeof(void*)
 #endif /* SAL_TYPES_ALIGNMENT8 */
 
+#if defined(SAL_TYPES_ALIGNMENT16) && SAL_TYPES_ALIGNMENT16 > 1
+#define RTL_MEMORY_ALIGNMENT_16 SAL_TYPES_ALIGNMENT16
+#else
+#define RTL_MEMORY_ALIGNMENT_16 16
+#endif /* SAL_TYPES_ALIGNMENT16 */
+
 #if 0  /* @@@ */
 #define RTL_MEMORY_ALIGNMENT_1 8
 #define RTL_MEMORY_ALIGNMENT_2 (sizeof(void*) * 2)
