diff --git a/README.md b/README.md
index 0b78a52..2906b68 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
 
 ## Installation
 
-Golint requires Go 1.5 or later.
+Golint requires Go 1.6 or later.
 
     go get -u github.com/golang/lint/golint
 
diff --git a/lint.go b/lint.go
index 6768516..3777f11 100644
--- a/lint.go
+++ b/lint.go
@@ -237,9 +237,7 @@
 
 var gcImporter = gcimporter.Import
 
-// importer implements go/types.Importer.
-// It also implements go/types.ImporterFrom, which was new in Go 1.6,
-// so vendoring will work.
+// importer implements go/types.Importer{,From}.
 type importer struct {
 	impFn    func(packages map[string]*types.Package, path, srcDir string) (*types.Package, error)
 	packages map[string]*types.Package
@@ -249,7 +247,9 @@
 	return i.impFn(i.packages, path, "")
 }
 
-// (importer).ImportFrom is in lint16.go.
+func (i importer) ImportFrom(path, srcDir string, mode types.ImportMode) (*types.Package, error) {
+	return i.impFn(i.packages, path, srcDir)
+}
 
 func (p *pkg) typeCheck() error {
 	config := &types.Config{
diff --git a/lint16.go b/lint16.go
deleted file mode 100644
index 34205aa..0000000
--- a/lint16.go
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) 2016 The Go Authors. All rights reserved.
-//
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file or at
-// https://developers.google.com/open-source/licenses/bsd.
-
-// +build go1.6
-
-package lint
-
-import "go/types"
-
-// This is in its own file so it can be ignored under Go 1.5.
-
-func (i importer) ImportFrom(path, srcDir string, mode types.ImportMode) (*types.Package, error) {
-	return i.impFn(i.packages, path, srcDir)
-}
