diff --git a/ui-ssdiff.c b/ui-ssdiff.c
index 3591ab4..8215051 100644
--- a/ui-ssdiff.c
+++ b/ui-ssdiff.c
@@ -40,9 +40,9 @@
 {
 	char *prev_buf = line;
 	char *cur_buf;
-        int linelen = strlen(line);
+	int linelen = strlen(line);
 	int n_tabs = 0;
-        int i;
+	int i;
 	char *result;
 	char *spaces = "        ";
 
@@ -52,10 +52,10 @@
 		return result;
 	}
 
-        for (i = 0; i < linelen; i++)
+	for (i = 0; i < linelen; i++)
 		if (line[i] == '\t')
 			n_tabs += 1;
-        result = xmalloc(linelen + n_tabs * 8 + 1);
+	result = xmalloc(linelen + n_tabs * 8 + 1);
 	result[0] = '\0';
 
 	while (1) {
@@ -106,10 +106,10 @@
 {
 	html("<tr>");
 	if (old_line_no > 0)
-		htmlf("<td class='%s'>%d </td><td class='%s'>", class,
+		htmlf("<td class='lineno'>%d</td><td class='%s'>",
 		      old_line_no, class);
 	else
-		htmlf("<td class='%s_dark'>  </td><td class='%s_dark'>", class, class);
+		htmlf("<td class='lineno'></td><td class='%s_dark'>", class);
 
 	if (old_line) {
 		old_line = replace_tabs(old_line + 1);
@@ -117,13 +117,13 @@
 		free(old_line);
 	}
 
-	html("  </td>");
+	html("</td>");
 
 	if (new_line_no > 0)
-		htmlf("<td class='%s'>  %d </td><td class='%s'>", class,
+		htmlf("<td class='lineno'>%d</td><td class='%s'>",
 		      new_line_no, class);
 	else
-		htmlf("<td class='%s_dark'>  </td><td class='%s_dark'>", class, class);
+		htmlf("<td class='lineno'></td><td class='%s_dark'>", class);
 
 	if (new_line) {
 		new_line = replace_tabs(new_line + 1);
@@ -249,16 +249,22 @@
 	line[len - 1] = c;
 }
 
-void cgit_ssdiff_header()
+void cgit_ssdiff_header_begin()
 {
 	current_old_line = 0;
 	current_new_line = 0;
-	html("<table class='ssdiff'>");
+	html("<tr><td class='space' colspan='4'><div></div></td></tr>");
+	html("<tr><td class='head' colspan='4'>");
+}
+
+void cgit_ssdiff_header_end()
+{
+	html("</td><tr>");
 }
 
 void cgit_ssdiff_footer()
 {
 	if (deferred_old || deferred_new)
 		cgit_ssdiff_print_deferred_lines();
-	html("</table>");
+	html("<tr><td class='foot' colspan='4'></td></tr>");
 }
