proto: allow text proto map keys to be omitted or order swapped
diff --git a/proto/equal.go b/proto/equal.go
index cafb99f..8b16f95 100644
--- a/proto/equal.go
+++ b/proto/equal.go
@@ -191,6 +191,13 @@
 		}
 		return true
 	case reflect.Ptr:
+		// Maps may have nil values in them, so check for nil.
+		if v1.IsNil() && v2.IsNil() {
+			return true
+		}
+		if v1.IsNil() != v2.IsNil() {
+			return false
+		}
 		return equalAny(v1.Elem(), v2.Elem(), prop)
 	case reflect.Slice:
 		if v1.Type().Elem().Kind() == reflect.Uint8 {