Index: /trunk/server/slabs.c
===================================================================
--- /trunk/server/slabs.c (revision 724)
+++ /trunk/server/slabs.c (revision 738)
@@ -219,8 +219,7 @@
 
 /*@null@*/
-void *do_slabs_alloc(const size_t size) {
+void *do_slabs_alloc(const size_t size, unsigned int id) {
     slabclass_t *p;
 
-    unsigned int id = slabs_clsid(size);
     if (id < POWER_SMALLEST || id > power_largest)
         return NULL;
Index: /trunk/server/thread.c
===================================================================
--- /trunk/server/thread.c (revision 653)
+++ /trunk/server/thread.c (revision 738)
@@ -572,9 +572,9 @@
 /******************************* SLAB ALLOCATOR ******************************/
 
-void *mt_slabs_alloc(size_t size) {
+void *mt_slabs_alloc(size_t size, unsigned int id) {
     void *ret;
 
     pthread_mutex_lock(&slabs_lock);
-    ret = do_slabs_alloc(size);
+    ret = do_slabs_alloc(size, id);
     pthread_mutex_unlock(&slabs_lock);
     return ret;
Index: /trunk/server/slabs.h
===================================================================
--- /trunk/server/slabs.h (revision 724)
+++ /trunk/server/slabs.h (revision 738)
@@ -18,5 +18,5 @@
 
 /** Allocate object of given length. 0 on error */ /*@null@*/
-void *do_slabs_alloc(const size_t size);
+void *do_slabs_alloc(const size_t size, unsigned int id);
 
 /** Free previously allocated object */
Index: /trunk/server/memcached.h
===================================================================
--- /trunk/server/memcached.h (revision 716)
+++ /trunk/server/memcached.h (revision 738)
@@ -292,5 +292,5 @@
 void  mt_item_update(item *it);
 void  mt_run_deferred_deletes(void);
-void *mt_slabs_alloc(size_t size);
+void *mt_slabs_alloc(size_t size, unsigned int id);
 void  mt_slabs_free(void *ptr, size_t size);
 int   mt_slabs_reassign(unsigned char srcid, unsigned char dstid);
@@ -321,5 +321,5 @@
 # define item_unlink(x)              mt_item_unlink(x)
 # define run_deferred_deletes()      mt_run_deferred_deletes()
-# define slabs_alloc(x)              mt_slabs_alloc(x)
+# define slabs_alloc(x,y)            mt_slabs_alloc(x,y)
 # define slabs_free(x,y)             mt_slabs_free(x,y)
 # define slabs_reassign(x,y)         mt_slabs_reassign(x,y)
@@ -354,5 +354,5 @@
 # define item_update(x)              do_item_update(x)
 # define run_deferred_deletes()      do_run_deferred_deletes()
-# define slabs_alloc(x)              do_slabs_alloc(x)
+# define slabs_alloc(x,y)            do_slabs_alloc(x,y)
 # define slabs_free(x,y)             do_slabs_free(x,y)
 # define slabs_reassign(x,y)         do_slabs_reassign(x,y)
Index: /trunk/server/items.c
===================================================================
--- /trunk/server/items.c (revision 737)
+++ /trunk/server/items.c (revision 738)
@@ -89,5 +89,5 @@
         return 0;
 
-    it = slabs_alloc(ntotal);
+    it = slabs_alloc(ntotal, id);
     if (it == 0) {
         int tries = 50;
@@ -120,5 +120,5 @@
             }
         }
-        it = slabs_alloc(ntotal);
+        it = slabs_alloc(ntotal, id);
         if (it == 0) return NULL;
     }
