diff --git a/src/quickfix.c b/src/quickfix.c
index a3d3e8f..45b58c4 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -120,7 +120,7 @@
 static qf_info_T ql_info;	// global quickfix list
 static int_u last_qf_id = 0;	// Last used quickfix list id
 
-#define FMT_PATTERNS 13		// maximum number of % recognized
+#define FMT_PATTERNS 14		// maximum number of % recognized
 
 /*
  * Structure used to hold the info of one part of 'errorformat'
@@ -275,20 +275,21 @@
 } fmt_pat[FMT_PATTERNS] =
     {
 	{'f', ".\\+"},	    // only used when at end
-	{'n', "\\d\\+"},	// 1
-	{'l', "\\d\\+"},	// 2
-	{'e', "\\d\\+"},	// 3
-	{'c', "\\d\\+"},	// 4
-	{'k', "\\d\\+"},	// 5
-	{'t', "."},		// 6
-#define FMT_PATTERN_M 7
-	{'m', ".\\+"},		// 7
-#define FMT_PATTERN_R 8
-	{'r', ".*"},		// 8
-	{'p', "[-	 .]*"},	// 9
-	{'v', "\\d\\+"},	// 10
-	{'s', ".\\+"},		// 11
-	{'o', ".\\+"}		// 12
+	{'b', "\\d\\+"},	// 1
+	{'n', "\\d\\+"},	// 2
+	{'l', "\\d\\+"},	// 3
+	{'e', "\\d\\+"},	// 4
+	{'c', "\\d\\+"},	// 5
+	{'k', "\\d\\+"},	// 6
+	{'t', "."},		// 7
+#define FMT_PATTERN_M 8
+	{'m', ".\\+"},		// 8
+#define FMT_PATTERN_R 9
+	{'r', ".*"},		// 9
+	{'p', "[-	 .]*"},	// 10
+	{'v', "\\d\\+"},	// 11
+	{'s', ".\\+"},		// 12
+	{'o', ".\\+"}		// 13
     };
 
 /*
@@ -942,6 +943,7 @@
 
 typedef struct {
     char_u	*namebuf;
+    int		bnr;
     char_u	*module;
     char_u	*errmsg;
     int		errmsglen;
@@ -989,6 +991,22 @@
  * Return the matched value in "fields->enr".
  */
     static int
+qf_parse_fmt_b(regmatch_T *rmp, int midx, qffields_T *fields)
+{
+    if (rmp->startp[midx] == NULL)
+	return QF_FAIL;
+    int bnr = (int)atol((char *)rmp->startp[midx]);
+    if (buflist_findnr(bnr) == NULL)
+	return QF_FAIL;
+    fields->bnr = bnr;
+    return QF_OK;
+}
+
+/*
+ * Parse the match for error number ('%n') pattern in regmatch.
+ * Return the matched value in "fields->enr".
+ */
+    static int
 qf_parse_fmt_n(regmatch_T *rmp, int midx, qffields_T *fields)
 {
     if (rmp->startp[midx] == NULL)
@@ -1213,6 +1231,7 @@
 static int (*qf_parse_fmt[FMT_PATTERNS])(regmatch_T *, int, qffields_T *) =
 {
     NULL, // %f
+    qf_parse_fmt_b,
     qf_parse_fmt_n,
     qf_parse_fmt_l,
     qf_parse_fmt_e,
@@ -1309,6 +1328,7 @@
 	return QF_FAIL;
 
     fields->namebuf[0] = NUL;
+    fields->bnr = 0;
     fields->module[0] = NUL;
     fields->pattern[0] = NUL;
     if (!qf_multiscan)
@@ -1713,7 +1733,7 @@
 		: ((qfl->qf_currfile != NULL && fields->valid)
 		    ? qfl->qf_currfile : (char_u *)NULL),
 		fields->module,
-		0,
+		fields->bnr,
 		fields->errmsg,
 		fields->lnum,
 		fields->end_lnum,
