Index: trunk/psLib/test/sysUtils/tst_psHash01.c
===================================================================
--- trunk/psLib/test/sysUtils/tst_psHash01.c	(revision 881)
+++ trunk/psLib/test/sysUtils/tst_psHash01.c	(revision 1073)
@@ -14,7 +14,11 @@
 }
 ID;
+
+static void IdFree(ID *id);
+
 static ID *IdAlloc(const char *name)
 {
     ID *id = psAlloc(sizeof(ID));
+    p_psMemSetDeallocator(id,(psFreeFcn)IdFree);
     id->name = psStringCopy(name);
 
@@ -26,5 +30,4 @@
     imGlobal++;
     psFree(id->name);
-    psFree(id);
 }
 
@@ -34,4 +37,5 @@
     int testStatus      = true;
     int currentId = psMemGetId();
+    ID* id = NULL;
     int memLeaks        = 0;
 
@@ -41,13 +45,17 @@
 
     myHashTable = psHashAlloc(NUM_HASH_TABLE_BUCKETS);
-    psHashInsert(myHashTable, "ENTRY00", IdAlloc("IDA"),
-                 (void (*)(void *))IdFree);
-    psHashInsert(myHashTable, "ENTRY01", IdAlloc("IDB"),
-                 (void (*)(void *))IdFree);
-    psHashInsert(myHashTable, "ENTRY02", IdAlloc("IDC"),
-                 (void (*)(void *))IdFree);
-    psHashInsert(myHashTable, "ENTRY03", IdAlloc("IDD"),
-                 (void (*)(void *))IdFree);
-    psHashFree(myHashTable, (void (*)(void *))IdFree);
+    id = IdAlloc("IDA");
+    psHashInsert(myHashTable, "ENTRY00", id);
+    psFree(id);
+    id = IdAlloc("IDB");
+    psHashInsert(myHashTable, "ENTRY01", id);
+    psFree(id);
+    id = IdAlloc("IDC");
+    psHashInsert(myHashTable, "ENTRY02", id);
+    psFree(id);
+    id = IdAlloc("IDD");
+    psHashInsert(myHashTable, "ENTRY03", id);
+    psFree(id);
+    psFree(myHashTable);
 
     if (imGlobal != 4) {
