diff --git a/src/base/reg.c b/src/base/reg.c
index c2cb42d5face4d41f9785e5346005eee103c9367..814cafaa4701187388c5ab54fd9f68329f959313 100644
--- a/src/base/reg.c
+++ b/src/base/reg.c
@@ -22,7 +22,9 @@ reg_global(struct module_reg **reg_ptr)
 PRIVATE_FUNCTION void *
 reg_internal_get(struct module_reg *reg, const char *name)
 {
-    for (int i = 0; (reg + i) && (reg + i)->name && (reg + i)->obj; ++i) {
+    if (reg == NULL)
+        return NULL;
+    for (int i = 0; (reg + i)->name && (reg + i)->obj; ++i) {
         if (STR_MATCH((reg + i)->name, name))
             return (reg + i)->obj;
     }
@@ -32,7 +34,9 @@ reg_internal_get(struct module_reg *reg, const char *name)
 PRIVATE_FUNCTION reg_func
 reg_internal_func(struct module_reg *reg, const char *name)
 {
-    for (int i = 0; (reg + i) && (reg + i)->name && (reg + i)->func; ++i) {
+    if (reg == NULL)
+        return NULL;
+    for (int i = 0; (reg + i)->name && (reg + i)->func; ++i) {
         if (STR_MATCH((reg + i)->name, name))
             return (reg + i)->func;
     }