diff --git a/src/general.c b/src/general.c
index c4d1f55..bacdd81 100644
--- a/src/general.c
+++ b/src/general.c
@@ -272,6 +272,8 @@ static const struct sinfo {
SINFO( nodata, "No such data" )
};
+static const char *unknown_error_str = "unknown error code";
+
static int si_compar(const void *key, const void *elem) {
const adns_status *st= key;
const struct sinfo *si= elem;
@@ -288,7 +290,7 @@ const char *adns_strerror(adns_status st) {
const struct sinfo *si;
si= findsinfo(st);
- return si->string;
+ return (si == NULL) ? unknown_error_str : si->string;
}
const char *adns_errabbrev(adns_status st) {