diff --git a/src/pkg/template/exec_test.go b/src/pkg/template/exec_test.go
index 57c6325..46b89fd 100644
--- a/src/pkg/template/exec_test.go
+++ b/src/pkg/template/exec_test.go
@@ -507,14 +507,21 @@
 	for i := 0; i < len(delimPairs); i += 2 {
 		text := ".Str"
 		left := delimPairs[i+0]
+		trueLeft := left
 		right := delimPairs[i+1]
+		trueRight := right
 		if left == "" { // default case
-			text = "{{" + text
+			trueLeft = "{{"
 		}
 		if right == "" { // default case
-			text = text + "}}"
+			trueRight = "}}"
 		}
-		text = left + text + right
+		text = trueLeft + text + trueRight
+		// Now add a comment
+		text += trueLeft + "/*comment*/" + trueRight
+		// Now add  an action containing a string.
+		text += trueLeft + `"` + trueLeft + `"` + trueRight
+		// At this point text looks like `{{.Str}}{{/*comment*/}}{{"{{"}}`.
 		tmpl, err := New("delims").Delims(left, right).Parse(text)
 		if err != nil {
 			t.Fatalf("delim %q text %q parse err %s", left, text, err)
@@ -524,8 +531,8 @@
 		if err != nil {
 			t.Fatalf("delim %q exec err %s", left, err)
 		}
-		if b.String() != hello {
-			t.Error("expected %q got %q", hello, b.String())
+		if b.String() != hello+trueLeft {
+			t.Error("expected %q got %q", hello+trueLeft, b.String())
 		}
 	}
 }
diff --git a/src/pkg/template/parse/lex.go b/src/pkg/template/parse/lex.go
index 07740d7..16ff590 100644
--- a/src/pkg/template/parse/lex.go
+++ b/src/pkg/template/parse/lex.go
@@ -230,8 +230,8 @@
 const (
 	leftDelim    = "{{"
 	rightDelim   = "}}"
-	leftComment  = "{{/*"
-	rightComment = "*/}}"
+	leftComment  = "/*"
+	rightComment = "*/"
 )
 
 // lexText scans until an opening action delimiter, "{{".
@@ -257,7 +257,7 @@
 
 // lexLeftDelim scans the left delimiter, which is known to be present.
 func lexLeftDelim(l *lexer) stateFn {
-	if strings.HasPrefix(l.input[l.pos:], leftComment) {
+	if strings.HasPrefix(l.input[l.pos:], l.leftDelim+leftComment) {
 		return lexComment
 	}
 	l.pos += len(l.leftDelim)
@@ -267,11 +267,11 @@
 
 // lexComment scans a comment. The left comment marker is known to be present.
 func lexComment(l *lexer) stateFn {
-	i := strings.Index(l.input[l.pos:], rightComment)
+	i := strings.Index(l.input[l.pos:], rightComment+l.rightDelim)
 	if i < 0 {
 		return l.errorf("unclosed comment")
 	}
-	l.pos += i + len(rightComment)
+	l.pos += i + len(rightComment) + len(l.rightDelim)
 	l.ignore()
 	return lexText
 }
diff --git a/src/pkg/template/parse/lex_test.go b/src/pkg/template/parse/lex_test.go
index f2569b1..6ee1b47 100644
--- a/src/pkg/template/parse/lex_test.go
+++ b/src/pkg/template/parse/lex_test.go
@@ -222,7 +222,7 @@
 	}
 }
 
-// Some easy cases from above, but with delimiters are $$ and @@
+// Some easy cases from above, but with delimiters $$ and @@
 var lexDelimTests = []lexTest{
 	{"punctuation", "$$,@%{{}}@@", []item{
 		tLeftDelim,
