diff --git a/contrib/array/array_iterator.c b/contrib/array/array_iterator.c
index 8a2455b673be7f1691af176ff368b176bbc929e8..5616350b3a5626f736623b6323d025845ce40818 100644
--- a/contrib/array/array_iterator.c
+++ b/contrib/array/array_iterator.c
@@ -361,7 +361,41 @@ array_all_oidne(ArrayType *array, Oid value)
 						  array, (Datum) value);
 }
 
-/* end of file */
+int32
+array_ineteq(ArrayType *array, Oid value)
+{
+	return array_iterator((Oid) 869,	/* inet */
+						  (Oid) 920,	/* network_eq */
+						  0,	/* logical or */
+						  array, (Datum) value);
+}
+
+int32
+array_all_ineteq(ArrayType *array, Oid value)
+{
+	return array_iterator((Oid) 869,	/* inet */
+						  (Oid) 920,	/* network_eq */
+						  1,	/* logical and */
+						  array, (Datum) value);
+}
+
+int32
+array_inetne(ArrayType *array, Oid value)
+{
+	return array_iterator((Oid) 869,	/* inet */
+						  (Oid) 925,	/* network_ne */
+						  0,	/* logical and */
+						  array, (Datum) value);
+}
+
+int32
+array_all_inetne(ArrayType *array, Oid value)
+{
+	return array_iterator((Oid) 869,	/* inet */
+						  (Oid) 925,	/* network_ne */
+						  1,	/* logical and */
+						  array, (Datum) value);
+}
 
 /*
  * Local Variables:
diff --git a/contrib/array/array_iterator.h b/contrib/array/array_iterator.h
index 7889fdc0b2ac284f49caa40b8a702a8bc1fb4e40..f959f09c7c7a430f4958e1ea40fefcac84a1aa72 100644
--- a/contrib/array/array_iterator.h
+++ b/contrib/array/array_iterator.h
@@ -34,6 +34,11 @@ int32		array_all_int4le(ArrayType *array, int4 value);
 
 int32		array_oideq(ArrayType *array, Oid value);
 int32		array_all_oidne(ArrayType *array, Oid value);
+
+int32		array_ineteq(ArrayType *array, Oid value);
+int32		array_all_ineteq(ArrayType *array, Oid value);
+int32		array_inetne(ArrayType *array, Oid value);
+int32		array_all_inetne(ArrayType *array, Oid value);
 #endif
 
 /*
diff --git a/contrib/array/array_iterator.sql.in b/contrib/array/array_iterator.sql.in
index d4182b112e2bb0c80254f3887b64881929a962ca..806d010e7240d9d357a19ce90d455aa32b8c0675 100644
--- a/contrib/array/array_iterator.sql.in
+++ b/contrib/array/array_iterator.sql.in
@@ -2,19 +2,19 @@
 
 -- define the array operators *=, **=, *~ and **~ for type _text
 --
-create function array_texteq(_text, text) returns bool
+create or replace function array_texteq(_text, text) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_all_texteq(_text, text) returns bool
+create or replace function array_all_texteq(_text, text) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_textregexeq(_text, text) returns bool
+create or replace function array_textregexeq(_text, text) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_all_textregexeq(_text, text) returns bool
+create or replace function array_all_textregexeq(_text, text) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
@@ -43,19 +43,19 @@ create operator **~ (
 --
 -- NOTE: "varchar" is also a reserved word and must be quoted.
 --
-create function array_varchareq(_varchar, varchar) returns bool
+create or replace function array_varchareq(_varchar, varchar) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_all_varchareq(_varchar, varchar) returns bool
+create or replace function array_all_varchareq(_varchar, varchar) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_varcharregexeq(_varchar, varchar) returns bool
+create or replace function array_varcharregexeq(_varchar, varchar) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_all_varcharregexeq(_varchar, varchar) returns bool
+create or replace function array_all_varcharregexeq(_varchar, varchar) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
@@ -82,19 +82,19 @@ create operator **~ (
 
 -- define the array operators *=, **=, *~ and **~ for type _bpchar
 --
-create function array_bpchareq(_bpchar, bpchar) returns bool
+create or replace function array_bpchareq(_bpchar, bpchar) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_all_bpchareq(_bpchar, bpchar) returns bool
+create or replace function array_all_bpchareq(_bpchar, bpchar) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_bpcharregexeq(_bpchar, bpchar) returns bool
+create or replace function array_bpcharregexeq(_bpchar, bpchar) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_all_bpcharregexeq(_bpchar, bpchar) returns bool
+create or replace function array_all_bpcharregexeq(_bpchar, bpchar) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
@@ -121,51 +121,51 @@ create operator **~ (
 
 -- define the array operators *=, **=, *> and **> for type _int4
 --
-create function array_int4eq(_int4, int4) returns bool
+create or replace function array_int4eq(_int4, int4) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_all_int4eq(_int4, int4) returns bool
+create or replace function array_all_int4eq(_int4, int4) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_int4ne(_int4, int4) returns bool
+create or replace function array_int4ne(_int4, int4) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_all_int4ne(_int4, int4) returns bool
+create or replace function array_all_int4ne(_int4, int4) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_int4gt(_int4, int4) returns bool
+create or replace function array_int4gt(_int4, int4) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_all_int4gt(_int4, int4) returns bool
+create or replace function array_all_int4gt(_int4, int4) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_int4ge(_int4, int4) returns bool
+create or replace function array_int4ge(_int4, int4) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_all_int4ge(_int4, int4) returns bool
+create or replace function array_all_int4ge(_int4, int4) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_int4lt(_int4, int4) returns bool
+create or replace function array_int4lt(_int4, int4) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_all_int4lt(_int4, int4) returns bool
+create or replace function array_all_int4lt(_int4, int4) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_int4le(_int4, int4) returns bool
+create or replace function array_int4le(_int4, int4) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_all_int4le(_int4, int4) returns bool
+create or replace function array_all_int4le(_int4, int4) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
@@ -231,11 +231,11 @@ create operator **<= (
 
 -- define the array operators *=, **<>  for type _oid  (added tobias 1. 1999)
 --
-create function array_oideq(_oid, oid) returns bool
+create or replace function array_oideq(_oid, oid) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
-create function array_all_oidne(_oid, oid) returns bool
+create or replace function array_all_oidne(_oid, oid) returns bool
   as 'MODULE_PATHNAME' 
   language 'c';
 
@@ -249,5 +249,40 @@ create operator **<> (
   rightarg=oid,
   procedure=array_all_oidne);
 
+-- define the array operators *=, **=, *<>, **<> for type _inet
 
--- end of file
+create or replace function array_ineteq(_inet, inet) returns bool
+  as 'MODULE_PATHNAME'
+  language 'c';
+
+create or replace function array_all_ineteq(_inet, inet) returns bool
+  as 'MODULE_PATHNAME'
+  language 'c';
+
+create or replace function array_inetne(_inet, inet) returns bool
+  as 'MODULE_PATHNAME'
+  language 'c';
+
+create or replace function array_all_inetne(_inet, inet) returns bool
+  as 'MODULE_PATHNAME'
+  language 'c';
+
+create operator *= (
+  leftarg=_inet,
+  rightarg=inet,
+  procedure=array_ineteq);
+
+create operator **= (
+  leftarg=_inet,
+  rightarg=inet,
+  procedure=array_all_ineteq);
+
+create operator *<> (
+  leftarg=_inet,
+  rightarg=inet,
+  procedure=array_inetne);
+
+create operator **<> (
+  leftarg=_inet,
+  rightarg=inet,
+  procedure=array_all_inetne);