diff --git a/hashtable.hxx.in b/hashtable.hxx.in
index d1a15161fce394ec494e53543001b82e24a816a1..3c49af70dc3a2bf946b821045b620b65a7d4cc5f 100644
--- a/hashtable.hxx.in
+++ b/hashtable.hxx.in
@@ -292,7 +292,8 @@ public:
   allocator_type get_allocator() const { return _M_node_allocator; }
 private:
   typedef typename _Alloc::template rebind<_Node>::other _M_node_allocator_type;
-  typedef kwsys_stl::vector<_Node*,_Alloc> _M_buckets_type;
+  typedef typename _Alloc::template rebind<_Node*>::other _M_node_ptr_allocator_type;
+  typedef kwsys_stl::vector<_Node*,_M_node_ptr_allocator_type> _M_buckets_type;
 #else
 public:
   typedef hash_allocator<_Val, _Alloc> allocator_type;