diff --git a/hashtable.hxx.in b/hashtable.hxx.in
index 3c49af70dc3a2bf946b821045b620b65a7d4cc5f..5adf715d026932b8eb6330ead5264bd50f6d4b0d 100644
--- a/hashtable.hxx.in
+++ b/hashtable.hxx.in
@@ -101,7 +101,11 @@ public:
     {
     if(n)
       {
-      return static_cast<pointer>(static_cast<void*>(alloc_.allocate(n*chunk(), hint)));
+      typedef kwsys_stl::allocator<void>::pointer void_pointer;
+      return
+        static_cast<pointer>(
+          static_cast<void*>(
+            alloc_.allocate(n*chunk(), const_cast<void_pointer>(hint))));
       }
     else
       {