diff --git a/eval.go b/eval.go
index <HASH>..<HASH> 100644
--- a/eval.go
+++ b/eval.go
@@ -1449,7 +1449,7 @@ var cachedStructsFieldIndex = map[reflect.Type]map[string][]int{}
 
 func getFieldOrMethodValue(key string, v reflect.Value) reflect.Value {
 	value := getValue(key, v)
-	if value.Kind() == reflect.Interface {
+	if value.Kind() == reflect.Interface && !value.IsNil() {
 		value = value.Elem()
 	}
 	return value
Do not access value's representation if value is nil interface