diff --git a/2012/chat/both/chat.go b/2012/chat/both/chat.go
index 90a716f..b7f2185 100644
--- a/2012/chat/both/chat.go
+++ b/2012/chat/both/chat.go
@@ -10,7 +10,7 @@
 	"net/http"
 	"time"
 
-	"code.google.com/p/go.net/websocket"
+	"golang.org/x/net/websocket"
 )
 
 const listenAddr = "localhost:4000"
diff --git a/2012/chat/http-noembed/chat.go b/2012/chat/http-noembed/chat.go
index 32ec34a..1306652 100644
--- a/2012/chat/http-noembed/chat.go
+++ b/2012/chat/http-noembed/chat.go
@@ -8,7 +8,7 @@
 	"log"
 	"net/http"
 
-	"code.google.com/p/go.net/websocket"
+	"golang.org/x/net/websocket"
 )
 
 const listenAddr = "localhost:4000"
diff --git a/2012/chat/http/chat.go b/2012/chat/http/chat.go
index 2d6190e..ae37e12 100644
--- a/2012/chat/http/chat.go
+++ b/2012/chat/http/chat.go
@@ -8,7 +8,7 @@
 	"log"
 	"net/http"
 
-	"code.google.com/p/go.net/websocket"
+	"golang.org/x/net/websocket"
 )
 
 const listenAddr = "localhost:4000"
@@ -24,7 +24,7 @@
 
 type socket struct {
 	io.ReadWriter // HL
-	done chan bool
+	done          chan bool
 }
 
 func (s socket) Close() error {
diff --git a/2012/chat/markov/chat.go b/2012/chat/markov/chat.go
index 2c20f2c..5641189 100644
--- a/2012/chat/markov/chat.go
+++ b/2012/chat/markov/chat.go
@@ -9,7 +9,7 @@
 	"net/http"
 	"time"
 
-	"code.google.com/p/go.net/websocket"
+	"golang.org/x/net/websocket"
 )
 
 const listenAddr = "localhost:4000"
diff --git a/2012/chat/support/websocket.go b/2012/chat/support/websocket.go
index e20d7c9..3e1c469 100644
--- a/2012/chat/support/websocket.go
+++ b/2012/chat/support/websocket.go
@@ -3,8 +3,8 @@
 package main
 
 import (
-	"code.google.com/p/go.net/websocket"
 	"fmt"
+	"golang.org/x/net/websocket"
 	"net/http"
 )
 
diff --git a/2012/insidepresent/socket-simple.go b/2012/insidepresent/socket-simple.go
index 7256650..6bd22f5 100644
--- a/2012/insidepresent/socket-simple.go
+++ b/2012/insidepresent/socket-simple.go
@@ -17,7 +17,7 @@
 	"runtime"
 	"strconv"
 
-	"code.google.com/p/go.net/websocket"
+	"golang.org/x/net/websocket"
 )
 
 const socketPresent = true
diff --git a/2012/insidepresent/socket.go b/2012/insidepresent/socket.go
index 71d106d..ab2e490 100644
--- a/2012/insidepresent/socket.go
+++ b/2012/insidepresent/socket.go
@@ -17,7 +17,7 @@
 	"runtime"
 	"strconv"
 
-	"code.google.com/p/go.net/websocket"
+	"golang.org/x/net/websocket"
 )
 
 const socketPresent = true
@@ -87,7 +87,7 @@
 			switch m.Kind {
 			case "run":
 				proc[m.Id].Kill()
-				lOut := limiter(in, out) // HL
+				lOut := limiter(in, out)                      // HL
 				proc[m.Id] = StartProcess(m.Id, m.Body, lOut) // HL
 			case "kill":
 				proc[m.Id].Kill()
@@ -211,6 +211,7 @@
 	w.out <- &Message{Id: w.id, Kind: w.kind, Body: string(b)}
 	return len(b), nil
 }
+
 // END OMIT
 
 // limiter returns a channel that wraps dest. Messages sent to the channel are
diff --git a/2012/insidepresent/websocket.go b/2012/insidepresent/websocket.go
index e20d7c9..3e1c469 100644
--- a/2012/insidepresent/websocket.go
+++ b/2012/insidepresent/websocket.go
@@ -3,8 +3,8 @@
 package main
 
 import (
-	"code.google.com/p/go.net/websocket"
 	"fmt"
+	"golang.org/x/net/websocket"
 	"net/http"
 )
 
diff --git a/2012/simple.slide b/2012/simple.slide
index 9018870..3b49a7c 100644
--- a/2012/simple.slide
+++ b/2012/simple.slide
@@ -175,7 +175,7 @@
 
 Import paths can be URLs:
 
-	import "code.google.com/p/go.net/websocket"
+	import "golang.org/x/net/websocket"
 
 To fetch, build and install a package:
 
diff --git a/2013/bestpractices.slide b/2013/bestpractices.slide
index 94be133..b4dbb48 100644
--- a/2013/bestpractices.slide
+++ b/2013/bestpractices.slide
@@ -91,7 +91,7 @@
 		"io"
 		"log"
 
-		"code.google.com/p/go.net/websocket"
+		"golang.org/x/net/websocket"
 	)
 
 The rest of the code starting with the most significant types, and ending
diff --git a/2013/bestpractices/funcdraw/cmd/funcdraw.go b/2013/bestpractices/funcdraw/cmd/funcdraw.go
index d9f5492..47dcca7 100644
--- a/2013/bestpractices/funcdraw/cmd/funcdraw.go
+++ b/2013/bestpractices/funcdraw/cmd/funcdraw.go
@@ -11,8 +11,8 @@
 
 // IMPORT OMIT
 import (
-	"code.google.com/p/go.talks/2013/bestpractices/funcdraw/drawer"
-	"code.google.com/p/go.talks/2013/bestpractices/funcdraw/parser"
+	"golang.org/x/talks/2013/bestpractices/funcdraw/drawer"
+	"golang.org/x/talks/2013/bestpractices/funcdraw/parser"
 )
 
 // ENDIMPORT OMIT
diff --git a/2013/bestpractices/funcdraw/drawer/dependent.go b/2013/bestpractices/funcdraw/drawer/dependent.go
index 2e8fe50..d181265 100644
--- a/2013/bestpractices/funcdraw/drawer/dependent.go
+++ b/2013/bestpractices/funcdraw/drawer/dependent.go
@@ -6,7 +6,7 @@
 import (
 	"image"
 
-	"code.google.com/p/go.talks/2013/bestpractices/funcdraw/parser"
+	"golang.org/x/talks/2013/bestpractices/funcdraw/parser"
 )
 
 // Draw draws an image showing a rendering of the passed ParsedFunc.
diff --git a/2013/go1.1.slide b/2013/go1.1.slide
index 5f71fbc..5169819 100644
--- a/2013/go1.1.slide
+++ b/2013/go1.1.slide
@@ -212,15 +212,15 @@
 
 * Exp and old subtrees moved
 
-The exp and old source subtrees, which are not included in binary distributions, have been moved to the new `go.exp` sub-repository at `code.google.com/p/go.exp`.
+The exp and old source subtrees, which are not included in binary distributions, have been moved to the new `go.exp` sub-repository at `golang.org/x/exp`.
 
 To access the `ssa` package, for example, run
 
-	$ go get code.google.com/p/go.exp/ssa
+	$ go get golang.org/x/exp/ssa
 
 and then in Go source,
 
-	import "code.google.com/p/go.exp/ssa"
+	import "golang.org/x/exp/ssa"
 
 The old package `exp/norm` has also been moved, but to a new repository `go.text`, where the Unicode APIs and other text-related packages will be developed.
 
diff --git a/2014/hammers.slide b/2014/hammers.slide
index 5758da1..04504c0 100644
--- a/2014/hammers.slide
+++ b/2014/hammers.slide
@@ -196,7 +196,7 @@
 
 * goimports ftw
 
-	import "code.google.com/p/go.tools/imports"
+	import "golang.org/x/tools/imports"
 
 .play hammers/importpath.go /func main/,/^}/
 
diff --git a/2014/hammers/importpath.go b/2014/hammers/importpath.go
index cee9787..c321ec0 100644
--- a/2014/hammers/importpath.go
+++ b/2014/hammers/importpath.go
@@ -5,7 +5,7 @@
 import (
 	"fmt"
 
-	"code.google.com/p/go.tools/imports"
+	"golang.org/x/tools/imports"
 )
 
 func main() {
