diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index 67e8a6b..fb17bad 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -90,6 +90,7 @@
 /* Define the friendly delay before and after opening net devices */
 #define CONF_POST_OPEN		10	/* After opening: 10 msecs */
 #define CONF_CARRIER_TIMEOUT	120000	/* Wait for carrier timeout */
+#define CONF_WARN_CARRIER_TIMEOUT 5000	/* Time before showing a warning message  */
 
 /* Define the timeout for waiting for a DHCP/BOOTP/RARP reply */
 #define CONF_OPEN_RETRIES 	2	/* (Re)open devices twice */
@@ -205,6 +206,7 @@ static int __init ic_open_devs(void)
 	struct net_device *dev;
 	unsigned short oflags;
 	unsigned long start;
+	unsigned int loops = 0;
 
 	last = &ic_first_dev;
 	rtnl_lock();
@@ -266,6 +268,17 @@ static int __init ic_open_devs(void)
 			if (ic_is_init_dev(dev) && netif_carrier_ok(dev))
 				goto have_carrier;
 
+		/* This loop is blocking the boot process until 
+		 *  we get the carrier or reach the timeout.
+		 *  We have to inform the user about the situation as 
+		 *  it could look like a kernel freeze.
+		 *  After CONF_WARN_CARRIER_TIMEOUT milliseconds,
+		 *  we display the remaing time before reaching the timeout.
+		 */
+		if (++loops == CONF_WARN_CARRIER_TIMEOUT) {
+			pr_info("IP-Config: Waiting up to %d seconds for carrier on interface\n", 
+				(CONF_CARRIER_TIMEOUT - CONF_WARN_CARRIER_TIMEOUT)/ 1000);
+		}
 		msleep(1);
 	}
 have_carrier:
