diff --git a/include/common.h b/include/common.h
index 07897f682eb637f494aeeb0b26d5eda56ada8fb8..8197508b6d27994edfe61318121080e37d76fcc6 100644
--- a/include/common.h
+++ b/include/common.h
@@ -617,6 +617,13 @@ int gunzip(void *, int, unsigned char *, unsigned long *);
 int zunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp,
 						int stoponerr, int offset);
 
+/* lib_generic/net_utils.c */
+#include <net.h>
+static inline IPaddr_t getenv_IPaddr (char *var)
+{
+	return (string_to_ip(getenv(var)));
+}
+
 /* lib_generic/time.c */
 void	udelay        (unsigned long);
 
diff --git a/include/net.h b/include/net.h
index 1c8ab12454b7e80de56eaaf8572f1fe3899e8957..3f6a5d1497fe439abe7d6a3e19cd070ba8515e57 100644
--- a/include/net.h
+++ b/include/net.h
@@ -508,9 +508,6 @@ extern void	VLAN_to_string (ushort x, char *s);
 /* Convert a string to a vlan id */
 extern ushort string_to_VLAN(char *s);
 
-/* read an IP address from a environment variable */
-extern IPaddr_t getenv_IPaddr (char *);
-
 /* read a VLAN id from an environment variable */
 extern ushort getenv_VLAN(char *);
 
diff --git a/lib_generic/Makefile b/lib_generic/Makefile
index bfaf3468ef673b3d12e715d5ce94b128b703e878..c17179cbc832dcce46bf51184d0ddd23f8f9f5d7 100644
--- a/lib_generic/Makefile
+++ b/lib_generic/Makefile
@@ -41,6 +41,7 @@ COBJS-y += gunzip.o
 COBJS-y += lmb.o
 COBJS-y += ldiv.o
 COBJS-$(CONFIG_MD5) += md5.o
+COBJS-y += net_utils.o
 COBJS-y += sha1.o
 COBJS-$(CONFIG_SHA256) += sha256.o
 COBJS-y += string.o
diff --git a/lib_generic/net_utils.c b/lib_generic/net_utils.c
new file mode 100644
index 0000000000000000000000000000000000000000..f03b098e9c1cca63a27ad0f49ff6585f5bffa0c1
--- /dev/null
+++ b/lib_generic/net_utils.c
@@ -0,0 +1,50 @@
+/*
+ * Generic network code. Moved from net.c
+ *
+ * Copyright 1994 - 2000 Neil Russell.
+ * Copyright 2000 Roland Borde
+ * Copyright 2000 Paolo Scaffardi
+ * Copyright 2000-2002 Wolfgang Denk, wd@denx.de
+ * Copyright 2009 Dirk Behme, dirk.behme@googlemail.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+
+IPaddr_t string_to_ip(char *s)
+{
+	IPaddr_t addr;
+	char *e;
+	int i;
+
+	if (s == NULL)
+		return(0);
+
+	for (addr=0, i=0; i<4; ++i) {
+		ulong val = s ? simple_strtoul(s, &e, 10) : 0;
+		addr <<= 8;
+		addr |= (val & 0xFF);
+		if (s) {
+			s = (*e) ? e+1 : e;
+		}
+	}
+
+	return (htonl(addr));
+}
diff --git a/net/net.c b/net/net.c
index 595abd92236bc44006e608add3b3f02fe88f2c24..7d2220d48dec224529f2917734965d1d0e73d526 100644
--- a/net/net.c
+++ b/net/net.c
@@ -1890,27 +1890,6 @@ void ip_to_string (IPaddr_t x, char *s)
 	);
 }
 
-IPaddr_t string_to_ip(char *s)
-{
-	IPaddr_t addr;
-	char *e;
-	int i;
-
-	if (s == NULL)
-		return(0);
-
-	for (addr=0, i=0; i<4; ++i) {
-		ulong val = s ? simple_strtoul(s, &e, 10) : 0;
-		addr <<= 8;
-		addr |= (val & 0xFF);
-		if (s) {
-			s = (*e) ? e+1 : e;
-		}
-	}
-
-	return (htonl(addr));
-}
-
 void VLAN_to_string(ushort x, char *s)
 {
 	x = ntohs(x);
@@ -1939,11 +1918,6 @@ ushort string_to_VLAN(char *s)
 	return htons(id);
 }
 
-IPaddr_t getenv_IPaddr (char *var)
-{
-	return (string_to_ip(getenv(var)));
-}
-
 ushort getenv_VLAN(char *var)
 {
 	return (string_to_VLAN(getenv(var)));