diff --git a/src/version.c b/src/version.c
index c9a95ed..32f0d1d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -795,6 +795,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    366,
+/**/
     365,
 /**/
     364,
diff --git a/src/xdiff/xemit.c b/src/xdiff/xemit.c
index dfc1d51..dae7f80 100644
--- a/src/xdiff/xemit.c
+++ b/src/xdiff/xemit.c
@@ -95,6 +95,7 @@
 }
 
 
+#if 0
 static long def_ff(const char *rec, long len, char *buf, long sz, void *priv UNUSED)
 {
 	if (len > 0 &&
@@ -110,7 +111,9 @@
 	}
 	return -1;
 }
+#endif
 
+#if 0
 static long match_func_rec(xdfile_t *xdf, xdemitconf_t const *xecfg, long ri,
 			   char *buf, long sz)
 {
@@ -120,18 +123,22 @@
 		return def_ff(rec, len, buf, sz, xecfg->find_func_priv);
 	return xecfg->find_func(rec, len, buf, sz, xecfg->find_func_priv);
 }
+#endif
 
+#if 0
 static int is_func_rec(xdfile_t *xdf, xdemitconf_t const *xecfg, long ri)
 {
 	char dummy[1];
 	return match_func_rec(xdf, xecfg, ri, dummy, sizeof(dummy)) >= 0;
 }
+#endif
 
 struct func_line {
 	long len;
 	char buf[80];
 };
 
+#if 0
 static long get_func_line(xdfenv_t *xe, xdemitconf_t const *xecfg,
 			  struct func_line *func_line, long start, long limit)
 {
@@ -151,7 +158,9 @@
 	}
 	return -1;
 }
+#endif
 
+#if 0
 static int is_empty_rec(xdfile_t *xdf, long ri)
 {
 	const char *rec;
@@ -163,12 +172,15 @@
 	}
 	return !len;
 }
+#endif
 
 int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
 		  xdemitconf_t const *xecfg) {
 	long s1, s2, e1, e2, lctx;
 	xdchange_t *xch, *xche;
+#if 0
 	long funclineprev = -1;
+#endif
 	struct func_line func_line;
 
 	func_line.len = 0;
@@ -181,6 +193,7 @@
 		s1 = XDL_MAX(xch->i1 - xecfg->ctxlen, 0);
 		s2 = XDL_MAX(xch->i2 - xecfg->ctxlen, 0);
 
+#if 0
 		if (xecfg->flags & XDL_EMIT_FUNCCONTEXT) {
 			long fs1, i1 = xch->i1;
 
@@ -218,6 +231,7 @@
 		}
 
  post_context_calculation:
+#endif
 		lctx = xecfg->ctxlen;
 		lctx = XDL_MIN(lctx, xe->xdf1.nrec - (xche->i1 + xche->chg1));
 		lctx = XDL_MIN(lctx, xe->xdf2.nrec - (xche->i2 + xche->chg2));
@@ -225,6 +239,7 @@
 		e1 = xche->i1 + xche->chg1 + lctx;
 		e2 = xche->i2 + xche->chg2 + lctx;
 
+#if 0
 		if (xecfg->flags & XDL_EMIT_FUNCCONTEXT) {
 			long fe1 = get_func_line(xe, xecfg, NULL,
 						 xche->i1 + xche->chg1,
@@ -253,16 +268,19 @@
 				}
 			}
 		}
+#endif
 
 		/*
 		 * Emit current hunk header.
 		 */
 
+#if 0
 		if (xecfg->flags & XDL_EMIT_FUNCNAMES) {
 			get_func_line(xe, xecfg, &func_line,
 				      s1 - 1, funclineprev);
 			funclineprev = s1 - 1;
 		}
+#endif
 		if (xdl_emit_hunk_hdr(s1 + 1, e1 - s1, s2 + 1, e2 - s2,
 				      func_line.buf, func_line.len, ecb) < 0)
 			return -1;
