diff --git a/database/database.go b/database/database.go
index 18ab428..6147f64 100644
--- a/database/database.go
+++ b/database/database.go
@@ -467,7 +467,7 @@
 	return subdirs, err
 }
 
-// Get gets the package documenation and sub-directories for the the given
+// Get gets the package documentation and sub-directories for the the given
 // import path.
 func (db *Database) Get(path string) (*doc.Package, []Package, time.Time, error) {
 	c := db.Pool.Get()
@@ -515,7 +515,7 @@
     return redis.call('HDEL', 'ids', path)
 `)
 
-// Delete deletes the documenation for the given import path.
+// Delete deletes the documentation for the given import path.
 func (db *Database) Delete(path string) error {
 	c := db.Pool.Get()
 	defer c.Close()
@@ -776,7 +776,7 @@
 	c.Send("SCAN", cursor, "MATCH", "pkg:*")
 	c.Flush()
 	for {
-		// Recieve previous SCAN.
+		// Receive previous SCAN.
 		values, err := redis.Values(c.Receive())
 		if err != nil {
 			return err
diff --git a/database/database_test.go b/database/database_test.go
index 1ab5c5a..5d21e78 100644
--- a/database/database_test.go
+++ b/database/database_test.go
@@ -121,7 +121,7 @@
 	}
 	actualImporters, err := db.Importers("github.com/user/repo/foo/bar")
 	if err != nil {
-		t.Fatalf("db.Importers() retunred error %v", err)
+		t.Fatalf("db.Importers() returned error %v", err)
 	}
 	expectedImporters := []Package{{"github.com/user/repo/foo/bar", "hello"}}
 	if !reflect.DeepEqual(actualImporters, expectedImporters) {
@@ -129,7 +129,7 @@
 	}
 	actualImports, err := db.Packages(pdoc.Imports)
 	if err != nil {
-		t.Fatalf("db.Imports() retunred error %v", err)
+		t.Fatalf("db.Imports() returned error %v", err)
 	}
 	for i := range actualImports {
 		if actualImports[i].Path == "C" {
diff --git a/deploy/redis.conf b/deploy/redis.conf
index e2b3ee7..37f34be 100644
--- a/deploy/redis.conf
+++ b/deploy/redis.conf
@@ -263,7 +263,7 @@
 #
 # A slave with a low priority number is considered better for promotion, so
 # for instance if there are three slaves with priority 10, 100, 25 Sentinel will
-# pick the one wtih priority 10, that is the lowest.
+# pick the one with priority 10, that is the lowest.
 #
 # However a special priority of 0 marks the slave as not able to perform the
 # role of master, so a slave with priority of 0 will never be selected by
diff --git a/doc/code.go b/doc/code.go
index af2b537..7e35c54 100644
--- a/doc/code.go
+++ b/doc/code.go
@@ -73,7 +73,7 @@
 type AnnotationKind int16
 
 const (
-	// Link to export in package specifed by Paths[PathIndex] with fragment
+	// Link to export in package specified by Paths[PathIndex] with fragment
 	// Text[strings.LastIndex(Text[Pos:End], ".")+1:End].
 	LinkAnnotation AnnotationKind = iota
 
diff --git a/gosrc/gosrc_test.go b/gosrc/gosrc_test.go
index 84e81f3..e4daf47 100644
--- a/gosrc/gosrc_test.go
+++ b/gosrc/gosrc_test.go
@@ -48,7 +48,7 @@
 		`<meta name="go-import" content="">` +
 		// go-source with wrong number of fields
 		`<meta name="go-source" content="alice.org/pkg blah">` +
-		// meta tag for a differnt package
+		// meta tag for a different package
 		`<meta name="go-import" content="alice.org/other git https://github.com/alice/other">` +
 		// meta tag for a different package
 		`<meta name="go-import" content="alice.org/other git https://github.com/alice/other">` +
