--- a/mib.c
+++ b/mib.c
@@ -120,6 +120,9 @@ static int encode_snmp_element_oid(value
 	int length;
 	int i;
 
+	if (oid_value == NULL) {
+		return -1;
+	}
 	buffer = value->data.buffer;
 	length = 1;
 	for (i = 2; i < oid_value->subid_list_length; i++) {
@@ -293,6 +296,8 @@ static int mib_build_entry(const oid_t *
 			value->data.encoded_length = 0;
 			value->data.buffer = malloc(value->data.max_length);
 			if (encode_snmp_element_oid(value, oid_aton((const char *)default_value)) == -1) {
+				lprintf(LOG_ERR, "could not create MIB entry '%s.%d.%d': invalid oid '%s'\n",
+					oid_ntoa(prefix), column, row, (char *)default_value);
 				return -1;
 			}
 			break;
