Fix for scanner bug (introduced with most recent change).

Fixes #433.

R=rsc
CC=golang-dev
https://golang.org/cl/179072
diff --git a/src/pkg/go/scanner/scanner.go b/src/pkg/go/scanner/scanner.go
index fad3c0f..4735cbd 100644
--- a/src/pkg/go/scanner/scanner.go
+++ b/src/pkg/go/scanner/scanner.go
@@ -223,10 +223,10 @@
 		}
 	}
 
-	// reset position
+	// reset position to where it was upon calling findNewline
 	S.pos = pos
 	S.offset = pos.Offset + 1
-	S.ch = '/'
+	S.next()
 
 	return newline
 }
@@ -577,6 +577,10 @@
 			if S.ch == '/' || S.ch == '*' {
 				// comment
 				if S.insertSemi && S.findNewline(pos) {
+					// reset position to the beginning of the comment
+					S.pos = pos
+					S.offset = pos.Offset + 1
+					S.ch = '/'
 					S.insertSemi = false // newline consumed
 					return pos, token.SEMICOLON, semicolon
 				}
diff --git a/src/pkg/go/scanner/scanner_test.go b/src/pkg/go/scanner/scanner_test.go
index 6ea4b2d..83314a3 100644
--- a/src/pkg/go/scanner/scanner_test.go
+++ b/src/pkg/go/scanner/scanner_test.go
@@ -392,6 +392,8 @@
 	"foo    $/*comment*/    \n",
 	"foo    $/*0*/ /*1*/ /*2*/    \n",
 	"foo	$/**/ /*-------------*/       /*----\n*/bar       $/*  \n*/baa",
+
+	"package main$\n\nfunc main() {\n\tif {\n\t\treturn /* */ }$\n}$\n",
 }