delete(packageCache, name)
        }
 
+       // In order to rebuild packages information completely,
+       // we need to clear commands cache. Command packages are
+       // referring to evicted packages from the package cache.
+       // This leads to duplicated loads of the standard packages.
+       for name := range cmdCache {
+               delete(cmdCache, name)
+       }
+
        args = importPaths(args)
        packagesForBuild(args)
 
 
        tg.setenv("GOPATH", tg.path("."))
        tg.run("test", "-p=4", "p1", "p2", "p3", "p4")
 }
+
+// Issue 14444: go get -u .../ duplicate loads errors
+func TestGoGetUpdateAllDoesNotTryToLoadDuplicates(t *testing.T) {
+       testenv.MustHaveExternalNetwork(t)
+
+       tg := testgo(t)
+       defer tg.cleanup()
+       tg.makeTempdir()
+       tg.setenv("GOPATH", tg.path("."))
+       tg.run("get", "-u", ".../")
+       tg.grepStderrNot("duplicate loads of", "did not remove old packages from cache")
+}