Index: /trunk/psLib/test/types/.cvsignore
===================================================================
--- /trunk/psLib/test/types/.cvsignore	(revision 10122)
+++ /trunk/psLib/test/types/.cvsignore	(revision 10123)
@@ -62,2 +62,3 @@
 tap_psMetadata_polynomials
 tap_psMetadata_printing
+tap_psHash_845
Index: /trunk/psLib/test/types/Makefile.am
===================================================================
--- /trunk/psLib/test/types/Makefile.am	(revision 10122)
+++ /trunk/psLib/test/types/Makefile.am	(revision 10123)
@@ -31,5 +31,6 @@
 	tap_psLookupTable_all \
 	tap_psMetadataConfig_output \
-	tap_psMetadataConfig_input
+	tap_psMetadataConfig_input \
+	tap_psHash_845
 
 if BUILD_TESTS
Index: /trunk/psLib/test/types/tap_psHash_845.c
===================================================================
--- /trunk/psLib/test/types/tap_psHash_845.c	(revision 10123)
+++ /trunk/psLib/test/types/tap_psHash_845.c	(revision 10123)
@@ -0,0 +1,33 @@
+#include <stdio.h>
+#include "pslib.h"
+#include "pstap.h"
+
+#define SIZE 128
+
+
+int main(int argc, char *argv[])
+{
+    plan_tests(5);
+
+    char *stuff1 = psAlloc(SIZE);       // Stuff to put on hash
+    char *stuff2 = psAlloc(SIZE);       // Stuff to put on hash
+
+    psHash *hash = psHashAlloc(16);     // Hash to test
+    ok(hash, "Hash allocated");
+
+    bool status1 = psHashAdd(hash, "stuff", stuff1);
+    ok(status1, "Added 1 to hash");
+    psFree(stuff1);                     // Drop reference
+
+    psMemId last = psMemGetId();        // Last memory I.D.
+    bool status2 = psHashAdd(hash, "stuff", stuff2);
+    ok(status2, "Added 2 to hash");
+    psFree(stuff2);                     // Drop reference
+
+    int numLeaks = psMemCheckLeaks(last, NULL, NULL, false); // Number of leaks
+    ok(numLeaks == 0, "No leaks.");
+
+    psFree(hash);
+
+    done();
+}
