diff --git a/include/types/protocols.h b/include/types/protocols.h
index c89deb3..62d9f60 100644
--- a/include/types/protocols.h
+++ b/include/types/protocols.h
@@ -104,6 +104,11 @@
 	} perm;
 	char *interface;		/* interface name or NULL */
 	int maxseg;			/* for TCP, advertised MSS */
+
+	struct {
+		const char *file;	/* file where the section appears */
+		int line;		/* line where the section appears */
+	} conf;				/* config information */
 };
 
 /* This structure contains all information needed to easily handle a protocol.
diff --git a/include/types/proxy.h b/include/types/proxy.h
index 1c73d24..88a01cc 100644
--- a/include/types/proxy.h
+++ b/include/types/proxy.h
@@ -258,6 +258,11 @@
 	int no_options2;			/* PR_O2_* */
 
 	struct pxcounters counters;		/* statistics counters */
+
+	struct {
+		const char *file;		/* file where the section appears */
+		int line;			/* line where the section appears */
+	} conf;					/* config information */
 };
 
 struct switching_rule {
diff --git a/include/types/server.h b/include/types/server.h
index ddf5a46..45528fa 100644
--- a/include/types/server.h
+++ b/include/types/server.h
@@ -131,6 +131,11 @@
 	int puid;				/* proxy-unique server ID, used for SNMP */
 
 	struct srvcounters counters;		/* statistics counters */
+
+	struct {
+		const char *file;		/* file where the section appears */
+		int line;			/* line where the section appears */
+	} conf;					/* config information */
 };
 
 
diff --git a/src/cfgparse.c b/src/cfgparse.c
index b35a15e..38dd8eb 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -876,6 +876,8 @@
 
 		curproxy->next = proxy;
 		proxy = curproxy;
+		curproxy->conf.file = file;
+		curproxy->conf.line = linenum;
 		LIST_INIT(&curproxy->pendconns);
 		LIST_INIT(&curproxy->acl);
 		LIST_INIT(&curproxy->block_cond);
@@ -895,10 +897,17 @@
 
 		/* parse the listener address if any */
 		if ((curproxy->cap & PR_CAP_FE) && *args[2]) {
+			struct listener *new, *last = curproxy->listen;
 			if (!str2listener(args[2], curproxy)) {
 				err_code |= ERR_FATAL;
 				goto out;
 			}
+			new = curproxy->listen;
+			while (new != last) {
+				new->conf.file = file;
+				new->conf.line = linenum;
+				new = new->next;
+			}
 			global.maxsock++;
 		}
 
@@ -1044,7 +1053,7 @@
 
 	/* Now let's parse the proxy-specific keywords */
 	if (!strcmp(args[0], "bind")) {  /* new listen addresses */
-		struct listener *last_listen;
+		struct listener *new_listen, *last_listen;
 		int cur_arg;
 
 		if (curproxy == &defproxy) {
@@ -1068,6 +1077,13 @@
 			goto out;
 		}
 
+		new_listen = curproxy->listen;
+		while (new_listen != last_listen) {
+			new_listen->conf.file = file;
+			new_listen->conf.line = linenum;
+			new_listen = new_listen->next;
+		}
+
 		cur_arg = 2;
 		while (*(args[cur_arg])) {
 			if (!strcmp(args[cur_arg], "interface")) { /* specifically bind to this interface */
@@ -2453,6 +2469,8 @@
 		curproxy->srv = newsrv;
 		newsrv->proxy = curproxy;
 		newsrv->puid = curproxy->next_svid++;
+		newsrv->conf.file = file;
+		newsrv->conf.line = linenum;
 
 		LIST_INIT(&newsrv->pendconns);
 		do_check = 0;
