     class Default_Mutex : public Mutex
        {
        public:
-@@ -78,6 +86,12 @@
+@@ -78,6 +87,12 @@
           bool locked;
        };
  

    };
 
 /*************************************************
diff -ur a/include/modules.h b/include/modules.h
--- a/include/modules.h	2007-03-24 11:51:37.000000000 -0700
+++ b/include/modules.h	2007-04-19 14:21:54.000000000 -0700
@@ -6,7 +6,9 @@
 #ifndef BOTAN_MODULE_FACTORIES_H__
 #define BOTAN_MODULE_FACTORIES_H__

    if(result)
       return result;
 
@@ -42,16 +50,6 @@
    }
 
 /*************************************************
-* Compare a Memory_Block with a void pointer     *
-*************************************************/
-inline bool Pooling_Allocator::Memory_Block::operator<(const void* other) const
-   {
-   if(buffer <= other && other < buffer_end)
-      return false;
-   return (buffer < other);
-   }
-
-/*************************************************
 * See if ptr is contained by this block          *
 *************************************************/
 bool Pooling_Allocator::Memory_Block::contains(void* ptr,
@@ -207,7 +205,7 @@
       const u32bit block_no = round_up(n, BLOCK_SIZE) / BLOCK_SIZE;
 
       std::vector<Memory_Block>::iterator i =
-         std::lower_bound(blocks.begin(), blocks.end(), ptr);
+         std::lower_bound(blocks.begin(), blocks.end(), Memory_Block(ptr));
 
       if(i == blocks.end() || !i->contains(ptr, block_no))
          throw Invalid_State("Pointer released to the wrong allocator");
@@ -270,7 +268,10 @@
       }
 
    std::sort(blocks.begin(), blocks.end());
-   last_used = std::lower_bound(blocks.begin(), blocks.end(), ptr);
+   last_used = std::lower_bound(blocks.begin(), blocks.end(), Memory_Block(ptr));
    }
 
+const u32bit Pooling_Allocator::Memory_Block::BITMAP_SIZE = 8 * sizeof(Pooling_Allocator::Memory_Block::bitmap_type);
+const u32bit Pooling_Allocator::Memory_Block::BLOCK_SIZE = 64;
+
 }
diff -ur a/src/modules.cpp b/src/modules.cpp
--- a/src/modules.cpp	2007-03-24 11:51:37.000000000 -0700
+++ b/src/modules.cpp	2007-06-26 11:31:30.000000000 -0700
@@ -5,71 +5,77 @@
 
 #include <botan/modules.h>
