diff --git a/include/html.h b/include/html.h
index 019ad73..2fdca44 100644
--- a/include/html.h
+++ b/include/html.h
@@ -190,7 +190,7 @@
 
 struct Itext
 {
-	Item _item;				// (with tag ==Itexttag)
+	Item item;				// (with tag ==Itexttag)
 	Rune*	s;			// the characters
 	int		fnt;			// style*NumSize+size (see font stuff, below)
 	int		fg;			// Pixel (color) for text
@@ -200,7 +200,7 @@
 
 struct Irule
 {
-	Item _item;				// (with tag ==Iruletag)
+	Item item;				// (with tag ==Iruletag)
 	uchar	align;		// alignment spec
 	uchar	noshade;		// if true, don't shade
 	int		size;			// size attr (rule height)
@@ -210,7 +210,7 @@
 
 struct Iimage
 {
-	Item _item;				// (with tag ==Iimagetag)
+	Item item;				// (with tag ==Iimagetag)
 	Rune*	imsrc;		// image src url
 	int		imwidth;		// spec width (actual, if no spec)
 	int		imheight;		// spec height (actual, if no spec)
@@ -227,14 +227,14 @@
 
 struct Iformfield
 {
-	Item _item;				// (with tag ==Iformfieldtag)
+	Item item;				// (with tag ==Iformfieldtag)
 	Formfield*	formfield;
 };
 
 
 struct Itable
 {
-	Item _item;				// (with tag ==Itabletag)
+	Item item;				// (with tag ==Itabletag)
 	Table*	table;
 };
 
@@ -253,7 +253,7 @@
 
 struct Ispacer
 {
-	Item _item;				// (with tag ==Ispacertag)
+	Item item;				// (with tag ==Ispacertag)
 	int		spkind;		// ISPnull, etc.
 };
 
@@ -611,7 +611,7 @@
 extern Rune*		targetname(int targid);
 extern int			validitems(Item* i);
 
-#pragma varargck	type "I"	Item*
+/* #pragma varargck	type "I"	Item* */
 
 // Control print output
 extern int			warn;
diff --git a/src/cmd/htmlfmt/dat.h b/src/cmd/htmlfmt/dat.h
index f3b0560..53db700 100644
--- a/src/cmd/htmlfmt/dat.h
+++ b/src/cmd/htmlfmt/dat.h
@@ -47,4 +47,4 @@
 extern	void		rerender(URLwin*);
 extern	void		freeurlwin(URLwin*);
 
-#pragma	varargck	argpos	error	1
+/* #pragma	varargck	argpos	error	1 */
diff --git a/src/cmd/htmlfmt/html.c b/src/cmd/htmlfmt/html.c
index 4f2e436..7589e3e 100644
--- a/src/cmd/htmlfmt/html.c
+++ b/src/cmd/htmlfmt/html.c
@@ -145,10 +145,10 @@
 		return nil;
 	base = estrdup(url);
 	slash = strrchr(base, '/');
-	if(slash!=nil && slash>=&base[rs[0].e.p-rs[0].s.p])
+	if(slash!=nil && slash>=&base[rs[0].e.ep-rs[0].s.sp])
 		*slash = '\0';
 	else
-		base[rs[0].e.p-rs[0].s.p] = '\0';
+		base[rs[0].e.ep-rs[0].s.sp] = '\0';
 	return base;
 }
 
diff --git a/src/cmd/htmlfmt/mkfile b/src/cmd/htmlfmt/mkfile
index 5b26353..7bf8fbb 100644
--- a/src/cmd/htmlfmt/mkfile
+++ b/src/cmd/htmlfmt/mkfile
@@ -1,4 +1,4 @@
-<$SYS9/$systype/$objtype/mkfile
+<$PLAN9/src/mkhdr
 
 TARG=htmlfmt
 OFILES=\
@@ -8,23 +8,9 @@
 
 HFILES=\
 	dat.h\
-	$SYS9/sys/include/html.h\
+	$PLAN9/include/html.h\
 
-LIB=$SYS9/$systype/$objtype/lib/libbio.a\
-	$SYS9/$systype/$objtype/lib/libregexp.a\
-	$SYS9/$systype/$objtype/lib/libhtml.a\
-	$SYS9/$systype/$objtype/lib/lib9c.a
+SHORTLIB=bio regexp9 html 9
 
-BIN=$SYS9/$systype/$objtype/bin
+<$PLAN9/src/mkone
 
-UPDATE=\
-	mkfile\
-	$HFILES\
-	${OFILES:%.$O=%.c}
-
-<$SYS9/sys/src/cmd/mkone
-
-CFLAGS=$CFLAGS
-
-#$O.out: $OFILES
-#	$LD -o $target  $LDFLAGS $OFILES
diff --git a/src/libhtml/impl.h b/src/libhtml/impl.h
index f8c79ea..1dfa689 100644
--- a/src/libhtml/impl.h
+++ b/src/libhtml/impl.h
@@ -158,6 +158,6 @@
 extern Token*	_gettoks(uchar* data, int datalen, int chset, int mtype, int* plen);
 extern int		_tokaval(Token* t, int attid, Rune** pans, int xfer);
 
-#pragma varargck	type "T"	Token*
+/* #pragma varargck	type "T"	Token* */
 
 #include "runetab.h"
diff --git a/src/libhtml/mkfile b/src/libhtml/mkfile
index 0952c45..7496d83 100644
--- a/src/libhtml/mkfile
+++ b/src/libhtml/mkfile
@@ -1,6 +1,6 @@
-<$SYS9/$systype/$objtype/mkfile
+<$PLAN9/src/mkhdr
 
-LIB=$LIB9/libhtml.a
+LIB=libhtml.a
 
 OFILES=\
 	build.$O\
@@ -10,13 +10,7 @@
 	runetab.$O\
 
 HFILES=\
-	$SYS9/sys/include/html.h\
+	$PLAN9/include/html.h\
 	impl.h\
 
-UPDATE=\
-	mkfile\
-	$HFILES\
-	${OFILES:%.$O=%.c}\
-	${LIB:$SYS9/$systype/$objtype/%=$SYS9/$systype/386/%}\
-
-<$SYS9/sys/src/cmd/mksyslib
+<$PLAN9/src/mksyslib
diff --git a/src/libhtml/utils.c b/src/libhtml/utils.c
index db22bba..32fd70d 100644
--- a/src/libhtml/utils.c
+++ b/src/libhtml/utils.c
@@ -1,4 +1,5 @@
 #include <u.h>
+#include <limits.h>
 #include <libc.h>
 #include <draw.h>
 #include <html.h>
