diff --git a/src/discdb.c b/src/discdb.c
index c21a608..9ad279b 100644
--- a/src/discdb.c
+++ b/src/discdb.c
@@ -311,7 +311,7 @@ gboolean DiscDBDoQuery(DiscInfo *disc,DiscDBServer *server,
query->query_match=MATCH_EXACT;
query->query_matches=0;
- while((inbuffer=DiscDBReadLine(&dataptr))) {
+ while(query->query_matches < MAX_INEXACT_MATCHES && (inbuffer=DiscDBReadLine(&dataptr))) {
query->query_list[query->query_matches].list_genre=
DiscDBGenreValue(g_strstrip(strtok(inbuffer," ")));
@@ -331,7 +331,7 @@ gboolean DiscDBDoQuery(DiscInfo *disc,DiscDBServer *server,
query->query_match=MATCH_INEXACT;
query->query_matches=0;
- while((inbuffer=DiscDBReadLine(&dataptr))) {
+ while(query->query_matches < MAX_INEXACT_MATCHES && (inbuffer=DiscDBReadLine(&dataptr))) {
query->query_list[query->query_matches].list_genre=
DiscDBGenreValue(g_strstrip(strtok(inbuffer," ")));