diff --git a/cmd/bundle/main.go b/cmd/bundle/main.go
index 962ccd0..ac09ee8 100644
--- a/cmd/bundle/main.go
+++ b/cmd/bundle/main.go
@@ -176,6 +176,16 @@
 	}
 }
 
+// isStandardImportPath is copied from cmd/go in the standard library.
+func isStandardImportPath(path string) bool {
+	i := strings.Index(path, "/")
+	if i < 0 {
+		i = len(path)
+	}
+	elem := path[:i]
+	return !strings.Contains(elem, ".")
+}
+
 var ctxt = &build.Default
 
 func bundle(src, dst, dstpkg, prefix string) ([]byte, error) {
@@ -259,16 +269,32 @@
 			}
 		}
 	}
-	fmt.Fprintln(&out, "import (")
+
+	var pkgStd, pkgExt []string
 	for _, p := range info.Pkg.Imports() {
 		if p.Path() == dst {
 			continue
 		}
-		if x, ok := importMap[p.Path()]; ok {
-			fmt.Fprintf(&out, "\t%q\n", x)
-			continue
+		x, ok := importMap[p.Path()]
+		if !ok {
+			x = p.Path()
 		}
-		fmt.Fprintf(&out, "\t%q\n", p.Path())
+		if isStandardImportPath(x) {
+			pkgStd = append(pkgStd, x)
+		} else {
+			pkgExt = append(pkgExt, x)
+		}
+	}
+
+	fmt.Fprintln(&out, "import (")
+	for _, p := range pkgStd {
+		fmt.Fprintf(&out, "\t%q\n", p)
+	}
+	if len(pkgExt) > 0 {
+		fmt.Fprintln(&out)
+		for _, p := range pkgExt {
+			fmt.Fprintf(&out, "\t%q\n", p)
+		}
 	}
 	fmt.Fprintln(&out, ")\n")
 
diff --git a/cmd/bundle/main_test.go b/cmd/bundle/main_test.go
index 009fc99..96c8cf7 100644
--- a/cmd/bundle/main_test.go
+++ b/cmd/bundle/main_test.go
@@ -29,6 +29,9 @@
 			"a.go": load("testdata/src/initial/a.go"),
 			"b.go": load("testdata/src/initial/b.go"),
 		},
+		"domain.name/importdecl": {
+			"p.go": load("testdata/src/domain.name/importdecl/p.go"),
+		},
 		"fmt": {
 			"print.go": `package fmt; func Println(...interface{})`,
 		},
diff --git a/cmd/bundle/testdata/out.golden b/cmd/bundle/testdata/out.golden
index 2b1784e..59f98fe 100644
--- a/cmd/bundle/testdata/out.golden
+++ b/cmd/bundle/testdata/out.golden
@@ -8,6 +8,8 @@
 
 import (
 	"fmt"
+
+	"domain.name/importdecl"
 )
 
 // init functions are not renamed
@@ -27,5 +29,5 @@
 const prefixc = 1
 
 func prefixfoo() {
-	fmt.Println()
+	fmt.Println(importdecl.F())
 }
diff --git a/cmd/bundle/testdata/src/domain.name/importdecl/p.go b/cmd/bundle/testdata/src/domain.name/importdecl/p.go
new file mode 100644
index 0000000..36dfd15
--- /dev/null
+++ b/cmd/bundle/testdata/src/domain.name/importdecl/p.go
@@ -0,0 +1,3 @@
+package importdecl
+
+func F() int { return 1 }
diff --git a/cmd/bundle/testdata/src/initial/b.go b/cmd/bundle/testdata/src/initial/b.go
index 399b6ed..5ec45ad 100644
--- a/cmd/bundle/testdata/src/initial/b.go
+++ b/cmd/bundle/testdata/src/initial/b.go
@@ -1,12 +1,16 @@
 // The package doc comment
 package initial
 
-import "fmt"
+import (
+	"fmt"
+
+	"domain.name/importdecl"
+)
 
 type t int
 
 const c = 1
 
 func foo() {
-	fmt.Println()
+	fmt.Println(importdecl.F())
 }
