diff --git a/eval.go b/eval.go
index <HASH>..<HASH> 100644
--- a/eval.go
+++ b/eval.go
@@ -1084,9 +1084,7 @@ func (st *Runtime) evalBaseExpressionGroup(node Node) reflect.Value {
 		}
 
 		// limit the number of pointers to follow
-		dereferenceLimit := 2
-		for resolved.Kind() == reflect.Ptr && dereferenceLimit >= 0 {
-			dereferenceLimit--
+		for dereferenceLimit := 2; resolved.Kind() == reflect.Ptr && dereferenceLimit >= 0; dereferenceLimit-- {
 			if resolved.IsNil() {
 				return reflect.ValueOf("")
 			}
@@ -1452,6 +1450,14 @@ func getFieldOrMethodValue(key string, v reflect.Value) reflect.Value {
 	if value.Kind() == reflect.Interface && !value.IsNil() {
 		value = value.Elem()
 	}
+
+	for dereferenceLimit := 2; value.Kind() == reflect.Ptr && dereferenceLimit >= 0; dereferenceLimit-- {
+		if value.IsNil() {
+			return reflect.ValueOf("")
+		}
+		value = reflect.Indirect(value)
+	}
+
 	return value
 }
Add support for pointer fields on structs