diff --git a/src/pkg/html/parse.go b/src/pkg/html/parse.go
index 6618600a153..4cb246969e5 100644
--- a/src/pkg/html/parse.go
+++ b/src/pkg/html/parse.go
@@ -1166,8 +1166,8 @@ func inColumnGroupIM(p *parser) bool {
case "colgroup":
if p.oe.top().Data != "html" {
p.oe.pop()
+ p.im = inTableIM
}
- p.im = inTableIM
return true
case "col":
// Ignore the token.
@@ -1176,9 +1176,10 @@ func inColumnGroupIM(p *parser) bool {
}
if p.oe.top().Data != "html" {
p.oe.pop()
+ p.im = inTableIM
+ return false
}
- p.im = inTableIM
- return false
+ return true
}
// Section 12.2.5.4.13.
diff --git a/src/pkg/html/parse_test.go b/src/pkg/html/parse_test.go
index f44bf6304ba..e887631c63d 100644
--- a/src/pkg/html/parse_test.go
+++ b/src/pkg/html/parse_test.go
@@ -172,7 +172,7 @@ func TestParser(t *testing.T) {
{"tests3.dat", -1},
{"tests4.dat", -1},
{"tests5.dat", -1},
- {"tests6.dat", 26},
+ {"tests6.dat", 36},
}
for _, tf := range testFiles {
f, err := os.Open("testdata/webkit/" + tf.filename)