diff --git a/tests/db/db_test.c b/tests/db/db_test.c
index 760d7ab..a6632b7 100644
--- a/tests/db/db_test.c
+++ b/tests/db/db_test.c
@@ -1,4 +1,5 @@
 /* (C) 2008 by Jan Luebbe <jluebbe@debian.org>
+ * (C) 2009 by Holger Hans Peter Freyther <zecke@selfish.org>
  * All Rights Reserved
  *
  * This program is free software; you can redistribute it and/or modify
@@ -23,6 +24,30 @@
 #include <string.h>
 #include <malloc.h>
 
+#define COMPARE(original, copy) \
+	if (original->id != copy->id) \
+		fprintf(stderr, "Ids do not match in %s:%d %llu %llu\n", \
+			__FUNCTION__, __LINE__, original->id, copy->id); \
+	if (original->lac != copy->lac) \
+		fprintf(stderr, "LAC do not match in %s:%d %d %d\n", \
+			__FUNCTION__, __LINE__, original->lac, copy->lac); \
+	if (original->authorized != copy->authorized) \
+		fprintf(stderr, "Authorize do not match in %s:%d %d %d\n", \
+			__FUNCTION__, __LINE__, original->authorized, \
+			copy->authorized); \
+	if (strcmp(original->imsi, copy->imsi) != 0) \
+		fprintf(stderr, "IMSIs do not match in %s:%d '%s' '%s'\n", \
+			__FUNCTION__, __LINE__, original->imsi, copy->imsi); \
+	if (strcmp(original->tmsi, copy->tmsi) != 0) \
+		fprintf(stderr, "TMSIs do not match in %s:%d '%s' '%s'\n", \
+			__FUNCTION__, __LINE__, original->tmsi, copy->tmsi); \
+	if (strcmp(original->name, copy->name) != 0) \
+		fprintf(stderr, "names do not match in %s:%d '%s' '%s'\n", \
+			__FUNCTION__, __LINE__, original->name, copy->name); \
+	if (strcmp(original->extension, copy->extension) != 0) \
+		fprintf(stderr, "names do not match in %s:%d '%s' '%s'\n", \
+			__FUNCTION__, __LINE__, original->extension, copy->extension); \
+
 int main() {
 
 	if (db_init("hlr.sqlite3")) {
@@ -38,28 +63,38 @@
 	printf("DB: Database prepared.\n");
 
 	struct gsm_subscriber *alice = NULL;
+	struct gsm_subscriber *alice_db;
 
-	alice = db_create_subscriber("3243245432345");
-	db_set_subscriber(alice);
-	db_get_subscriber(GSM_SUBSCRIBER_IMSI, alice);
-	free(alice);
+	char *alice_imsi = "3243245432345";
+	alice = db_create_subscriber(alice_imsi);
+	db_sync_subscriber(alice);
+	alice_db = db_get_subscriber(GSM_SUBSCRIBER_IMSI, alice->imsi);
+	COMPARE(alice, alice_db);
+	subscr_put(alice_db);
+	subscr_put(alice);
 
-	alice = db_create_subscriber("3693245423445");
+	alice_imsi = "3693245423445";
+	alice = db_create_subscriber(alice_imsi);
 	db_subscriber_assoc_imei(alice, "1234567890");
 	db_subscriber_alloc_tmsi(alice);
 	alice->lac=42;
-	db_set_subscriber(alice);
-	db_get_subscriber(GSM_SUBSCRIBER_IMSI, alice);
-	free(alice);
+	db_sync_subscriber(alice);
+	alice_db = db_get_subscriber(GSM_SUBSCRIBER_IMSI, alice_imsi);
+	COMPARE(alice, alice_db);
+	subscr_put(alice);
+	subscr_put(alice_db);
 
-	alice = db_create_subscriber("9993245423445");
+	alice_imsi = "9993245423445";
+	alice = db_create_subscriber(alice_imsi);
 	db_subscriber_alloc_tmsi(alice);
 	alice->lac=42;
-	db_set_subscriber(alice);
+	db_sync_subscriber(alice);
 	db_subscriber_assoc_imei(alice, "1234567890");
 	db_subscriber_assoc_imei(alice, "6543560920");
-	db_get_subscriber(GSM_SUBSCRIBER_IMSI, alice);
-	free(alice);
+	alice_db = db_get_subscriber(GSM_SUBSCRIBER_IMSI, alice_imsi);
+	COMPARE(alice, alice_db);
+	subscr_put(alice);
+	subscr_put(alice_db);
 
 	db_fini();
 
