diff --git a/src/mod/applications/mod_cidlookup/mod_cidlookup.c b/src/mod/applications/mod_cidlookup/mod_cidlookup.c
index 34820960a5..8cec43842d 100755
--- a/src/mod/applications/mod_cidlookup/mod_cidlookup.c
+++ b/src/mod/applications/mod_cidlookup/mod_cidlookup.c
@@ -392,18 +392,21 @@ static char *do_lookup(switch_memory_pool_t *pool, switch_event_t *event, const
 	number = string_digitsonly(pool, num);
 	switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "caller_id_number", number);
 
-	if (globals.cache) {
-		name = check_cache(pool, number);
-	}
 #ifdef SWITCH_HAVE_ODBC
-	if (!name && globals.master_odbc && globals.sql) {
+	/* database always wins */
+	if (globals.master_odbc && globals.sql) {
 		name = do_db_lookup(pool, event, number);
 	}
 #endif
-	if (!skipurl && !name && globals.url) {
-		name = do_lookup_url(pool, event, number);
-		if (globals.cache && name) {
-			set_cache(pool, number, name);
+	if (!name && globals.url) {
+		if (globals.cache) {
+			name = check_cache(pool, number);
+		}
+		if (!skipurl && !name) {
+			name = do_lookup_url(pool, event, number);
+			if (globals.cache && name) {
+				set_cache(pool, number, name);
+			}
 		}
 	}
 	return name;