diff --git a/alib2std/src/extensions/allocFix.hpp b/alib2std/src/extensions/allocFix.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..d8ad8005a3fead456bfab29af8e3eedc8d6b56d2
--- /dev/null
+++ b/alib2std/src/extensions/allocFix.hpp
@@ -0,0 +1,23 @@
+/*
+ * allocFix.hpp
+ *
+ * Created on: Mar 6, 2018
+ * Author: Jan Travnicek
+ */
+
+#ifndef __ALLOC_FIX_HPP_
+#define __ALLOC_FIX_HPP_
+
+namespace ext {
+
+template < class Alloc >
+class AllocFix {
+public:
+	AllocFix ( ) {
+		static Alloc alloc;
+	}
+};
+
+} /* namespace ext */
+
+#endif /* __ALLOC_FIX_HPP_ */
diff --git a/alib2std/src/extensions/deque.hpp b/alib2std/src/extensions/deque.hpp
index 368f848a6076a5cd73e4e6fe1338b565eb7db281..a705f21e41d9b5281c6432a7fef52852e5a8b4a5 100644
--- a/alib2std/src/extensions/deque.hpp
+++ b/alib2std/src/extensions/deque.hpp
@@ -14,11 +14,12 @@
 #include <string>
 
 #include "compare.hpp"
+#include "allocFix.hpp"
 
 namespace ext {
 
 template < class T, class Alloc = std::allocator < T > >
-class deque : public std::deque < T, Alloc > {
+class deque : public std::deque < T, Alloc >, AllocFix < Alloc > {
 public:
 #ifdef __clang__
 	using std::deque < T, Alloc >::deque;
diff --git a/alib2std/src/extensions/forward_list.hpp b/alib2std/src/extensions/forward_list.hpp
index a50135ecc85445a15c8159f820e3dca021c6a003..70c10f3f14ceea13d943a008b5d3df5430f71628 100644
--- a/alib2std/src/extensions/forward_list.hpp
+++ b/alib2std/src/extensions/forward_list.hpp
@@ -14,11 +14,12 @@
 #include <string>
 
 #include "compare.hpp"
+#include "allocFix.hpp"
 
 namespace ext {
 
 template < class T, class Alloc = std::allocator < T > >
-class forward_list : public std::forward_list < T, Alloc > {
+class forward_list : public std::forward_list < T, Alloc >, AllocFix < Alloc > {
 public:
 #ifdef __clang__
 	using std::forward_list < T, Alloc >::forward_list;
diff --git a/alib2std/src/extensions/list.hpp b/alib2std/src/extensions/list.hpp
index fb8c0b0d2f7f5b476cb96409315ff694fe441bf2..c97d514cec19584b0541db14e297a501d6a718ef 100644
--- a/alib2std/src/extensions/list.hpp
+++ b/alib2std/src/extensions/list.hpp
@@ -14,11 +14,12 @@
 #include <string>
 
 #include "compare.hpp"
+#include "allocFix.hpp"
 
 namespace ext {
 
 template < class T, class Alloc = std::allocator < T > >
-class list : public std::list < T, Alloc > {
+class list : public std::list < T, Alloc >, AllocFix < Alloc > {
 public:
 #ifdef __clang__
 	using std::list < T, Alloc >::list;
diff --git a/alib2std/src/extensions/map.hpp b/alib2std/src/extensions/map.hpp
index 79ac0846cdbd4eeb5d618da56fe960a1ec7dd87e..173c3de12be933f2345598798487dad2bed9dae5 100644
--- a/alib2std/src/extensions/map.hpp
+++ b/alib2std/src/extensions/map.hpp
@@ -16,11 +16,12 @@
 
 #include "compare.hpp"
 #include "pair.hpp"
+#include "allocFix.hpp"
 
 namespace ext {
 
 template < typename T, typename R, typename Cmp = std::less < >, typename Alloc = std::allocator < std::pair < const T, R > > >
-class map : public std::map < T, R, Cmp, Alloc > {
+class map : public std::map < T, R, Cmp, Alloc >, AllocFix < Alloc > {
 public:
 #ifdef __clang__
 	using std::map< T, R, Cmp, Alloc >::map;
diff --git a/alib2std/src/extensions/set.hpp b/alib2std/src/extensions/set.hpp
index 9adf02d3458601aa8058bccd71b186504dfbd72e..7ed0e02ebb8aca175533741a89fbdc382449b4d6 100644
--- a/alib2std/src/extensions/set.hpp
+++ b/alib2std/src/extensions/set.hpp
@@ -14,11 +14,12 @@
 #include <string>
 
 #include "compare.hpp"
+#include "allocFix.hpp"
 
 namespace ext {
 
 template < typename T, typename Cmp = std::less < >, typename Alloc = std::allocator < T > >
-class set : public std::set < T, Cmp, Alloc > {
+class set : public std::set < T, Cmp, Alloc >, AllocFix < Alloc > {
 public:
 #ifdef __clang__
 	using std::set < T, Cmp, Alloc >::set;
diff --git a/alib2std/src/extensions/unordered_map.hpp b/alib2std/src/extensions/unordered_map.hpp
index a5533798abfbf12a95f33cbd79171212ffa9830b..6d55d72fef3f0a08056001260923ba129be3f0ee 100644
--- a/alib2std/src/extensions/unordered_map.hpp
+++ b/alib2std/src/extensions/unordered_map.hpp
@@ -14,11 +14,12 @@
 #include <string>
 
 #include "compare.hpp"
+#include "allocFix.hpp"
 
 namespace ext {
 
 template < class T, class R, class Hash = std::hash < T >, class KeyEqual = std::equal_to < T >, class Alloc = std::allocator < std::pair < const T, R > > >
-class unordered_map : public std::unordered_map < T, R, Hash, KeyEqual, Alloc > {
+class unordered_map : public std::unordered_map < T, R, Hash, KeyEqual, Alloc >, AllocFix < Alloc > {
 public:
 #ifdef __clang__
 	using std::unordered_map < T, R, Hash, KeyEqual, Alloc >::unordered_map;
diff --git a/alib2std/src/extensions/vector.hpp b/alib2std/src/extensions/vector.hpp
index e152bc971b0d43c556997b8d8938439beff67e1d..7566ca0631129ad5408c7f839c231026fcd64cd5 100644
--- a/alib2std/src/extensions/vector.hpp
+++ b/alib2std/src/extensions/vector.hpp
@@ -14,11 +14,12 @@
 #include <string>
 
 #include "compare.hpp"
+#include "allocFix.hpp"
 
 namespace ext {
 
 template < class T, class Alloc = std::allocator < T > >
-class vector : public std::vector < T, Alloc > {
+class vector : public std::vector < T, Alloc >, AllocFix < Alloc > {
 public:
 #ifdef __clang__
 	using std::vector< T, Alloc >::vector;