diff --git a/src/tcap.c b/src/tcap.c
index 5feaa6e..4c21f78 100644
--- a/src/tcap.c
+++ b/src/tcap.c
@@ -216,8 +216,10 @@ found_member:
 
 		type = member->type;
 		element = element + member->memb_offset;
-		if (member->flags & ATF_POINTER)
+		if (element && (member->flags & ATF_POINTER))
 			element = *((void **) element);
+		if (!element)
+			break;
 
 found_element:
 		if (next_token_2(&token, &c))