diff --git a/lint.go b/lint.go
index 45a65ef..dc58a45 100644
--- a/lint.go
+++ b/lint.go
@@ -351,12 +351,34 @@
 	}
 
 	const ref = styleGuideBase + "#package-comments"
+	prefix := "Package " + f.f.Name.Name + " "
+
+	// Look for a detached package comment.
+	// First, scan for the last comment that occurs before the "package" keyword.
+	var lastCG *ast.CommentGroup
+	for _, cg := range f.f.Comments {
+		if cg.Pos() > f.f.Package {
+			// Gone past "package" keyword.
+			break
+		}
+		lastCG = cg
+	}
+	if lastCG != nil && strings.HasPrefix(lastCG.Text(), prefix) {
+		endPos := f.fset.Position(lastCG.End())
+		pkgPos := f.fset.Position(f.f.Package)
+		if endPos.Line+1 < pkgPos.Line {
+			// There isn't a great place to anchor this error;
+			// the package statement seems as good as any.
+			f.errorf(f.f, 0.9, link(ref), category("comments"), "package comment is detached; there should be no blank lines between it and the package statement")
+			return
+		}
+	}
+
 	if f.f.Doc == nil {
 		f.errorf(f.f, 0.2, link(ref), category("comments"), "should have a package comment, unless it's in another file for this package")
 		return
 	}
 	s := f.f.Doc.Text()
-	prefix := "Package " + f.f.Name.Name + " "
 	if ts := strings.TrimLeft(s, " \t"); ts != s {
 		f.errorf(f.f.Doc, 1, link(ref), category("comments"), "package comment should not have leading space")
 		s = ts
diff --git a/testdata/pkg-doc5.go b/testdata/pkg-doc5.go
new file mode 100644
index 0000000..e173617
--- /dev/null
+++ b/testdata/pkg-doc5.go
@@ -0,0 +1,7 @@
+// Test of detached package comment.
+
+/*
+Package foo is pretty sweet.
+*/
+
+package foo // MATCH /package comment.*detached/
