diff --git a/serialization.go b/serialization.go
index <HASH>..<HASH> 100644
--- a/serialization.go
+++ b/serialization.go
@@ -159,7 +159,7 @@ func prepareValues(prefix string, params url.Values, command interface{}) error 
 					switch field.Type {
 					case reflect.TypeOf(net.IPv4zero):
 						ip := (net.IP)(val.Bytes())
-						if ip == nil || ip.Equal(net.IPv4zero) {
+						if ip == nil || ip.Equal(net.IP{}) {
 							if required {
 								return fmt.Errorf("%s.%s (%v) is required, got zero IPv4 address", typeof.Name(), n, val.Kind())
 							}
diff --git a/serialization_test.go b/serialization_test.go
index <HASH>..<HASH> 100644
--- a/serialization_test.go
+++ b/serialization_test.go
@@ -262,11 +262,11 @@ func TestPrepareValuesIP(t *testing.T) {
 	}
 }
 
-func TestPrepareValuesIPZero(t *testing.T) {
+func TestPrepareValuesIPNil(t *testing.T) {
 	profile := struct {
 		RequiredField net.IP `json:"requiredfield"`
 	}{
-		RequiredField: net.IPv4zero,
+		RequiredField: net.IP{},
 	}
 
 	params := url.Values{}
serialization: fail on empty IP, not zero. (#<I>)