diff --git a/pb_common.c b/pb_common.c
index 636d73a..911ae4c 100644
--- a/pb_common.c
+++ b/pb_common.c
@@ -67,31 +67,40 @@
         iter->data_size = (pb_size_t)word3;
     }
 
-    iter->pField = (char*)iter->message + data_offset;
-
-    if (size_offset)
+    if (!iter->message)
     {
-        iter->pSize = (char*)iter->pField - size_offset;
-    }
-    else if (PB_HTYPE(iter->type) == PB_HTYPE_REPEATED &&
-             (PB_ATYPE(iter->type) == PB_ATYPE_STATIC ||
-              PB_ATYPE(iter->type) == PB_ATYPE_POINTER))
-    {
-        /* Fixed count array */
-        iter->pSize = &iter->array_size;
-    }
-    else
-    {
+        /* Avoid doing arithmetic on null pointers, it is undefined */
+        iter->pField = NULL;
         iter->pSize = NULL;
     }
-
-    if (PB_ATYPE(iter->type) == PB_ATYPE_POINTER && iter->pField != NULL)
-    {
-        iter->pData = *(void**)iter->pField;
-    }
     else
     {
-        iter->pData = iter->pField;
+        iter->pField = (char*)iter->message + data_offset;
+
+        if (size_offset)
+        {
+            iter->pSize = (char*)iter->pField - size_offset;
+        }
+        else if (PB_HTYPE(iter->type) == PB_HTYPE_REPEATED &&
+                 (PB_ATYPE(iter->type) == PB_ATYPE_STATIC ||
+                  PB_ATYPE(iter->type) == PB_ATYPE_POINTER))
+        {
+            /* Fixed count array */
+            iter->pSize = &iter->array_size;
+        }
+        else
+        {
+            iter->pSize = NULL;
+        }
+
+        if (PB_ATYPE(iter->type) == PB_ATYPE_POINTER && iter->pField != NULL)
+        {
+            iter->pData = *(void**)iter->pField;
+        }
+        else
+        {
+            iter->pData = iter->pField;
+        }
     }
 
     if (PB_LTYPE_IS_SUBMSG(iter->type))
@@ -151,11 +160,6 @@
     iter->descriptor = desc;
     iter->message = message;
 
-    if (!desc || !message)
-    {
-        return false;
-    }
-
     return load_descriptor_values(iter);
 }
 
diff --git a/pb_decode.c b/pb_decode.c
index 484c1cd..4244fe0 100644
--- a/pb_decode.c
+++ b/pb_decode.c
@@ -819,9 +819,9 @@
     pb_field_iter_t iter;
 
     if (!pb_field_iter_begin_extension(&iter, extension))
-        return true; /* Empty field list or extension->dest is null for static fields */
+        PB_RETURN_ERROR(stream, "invalid extension");
 
-    if (iter.tag != tag)
+    if (iter.tag != tag || !iter.message)
         return true;
 
     extension->found = true;
