diff --git a/cmd/geth/consolecmd_test.go b/cmd/geth/consolecmd_test.go
index 9cfb3e4e35bc8d116d1a64003b0bc18791b3ca9e..e59fe1415b025ad6dffa9a37a4e3e7323b478019 100644
--- a/cmd/geth/consolecmd_test.go
+++ b/cmd/geth/consolecmd_test.go
@@ -27,7 +27,6 @@ import (
 	"testing"
 	"time"
 
-	"github.com/ethereum/go-ethereum/console"
 	"github.com/ethereum/go-ethereum/rpc"
 )
 
@@ -37,9 +36,10 @@ func TestConsoleWelcome(t *testing.T) {
 	coinbase := "0x8605cdbbdb6d264aa742e77020dcbc58fcdce182"
 
 	// Start a geth console, make sure it's cleaned up and terminate the console
-	geth := runGeth(t, "--nat", "none", "--nodiscover", "--etherbase", coinbase, "-shh", "console")
-	defer geth.expectExit()
-	geth.stdin.Close()
+	geth := runGeth(t,
+		"--port", "0", "--maxpeers", "0", "--nodiscover", "--nat", "none",
+		"--etherbase", coinbase, "--shh",
+		"console")
 
 	// Gather all the infos the welcome message needs to contain
 	geth.setTemplateFunc("goos", func() string { return runtime.GOOS })
@@ -51,7 +51,6 @@ func TestConsoleWelcome(t *testing.T) {
 		sort.Strings(apis)
 		return apis
 	})
-	geth.setTemplateFunc("prompt", func() string { return console.DefaultPrompt })
 
 	// Verify the actual welcome message to the required template
 	geth.expect(`
@@ -63,52 +62,63 @@ at block: 0 ({{niltime}})
  datadir: {{.Datadir}}
  modules:{{range apis}} {{.}}:1.0{{end}}
 
-{{prompt}}
+> {{.InputLine "exit"}}
 `)
+	geth.expectExit()
 }
 
 // Tests that a console can be attached to a running node via various means.
 func TestIPCAttachWelcome(t *testing.T) {
 	// Configure the instance for IPC attachement
 	coinbase := "0x8605cdbbdb6d264aa742e77020dcbc58fcdce182"
-
 	var ipc string
 	if runtime.GOOS == "windows" {
 		ipc = `\\.\pipe\geth` + strconv.Itoa(rand.Int())
 	} else {
 		ws := tmpdir(t)
 		defer os.RemoveAll(ws)
-
 		ipc = filepath.Join(ws, "geth.ipc")
 	}
-	// Run the parent geth and attach with a child console
-	geth := runGeth(t, "--nat", "none", "--nodiscover", "--etherbase", coinbase, "-shh", "--ipcpath", ipc)
-	defer geth.interrupt()
+	// Note: we need --shh because testAttachWelcome checks for default
+	// list of ipc modules and shh is included there.
+	geth := runGeth(t,
+		"--port", "0", "--maxpeers", "0", "--nodiscover", "--nat", "none",
+		"--etherbase", coinbase, "--shh", "--ipcpath", ipc)
 
 	time.Sleep(2 * time.Second) // Simple way to wait for the RPC endpoint to open
 	testAttachWelcome(t, geth, "ipc:"+ipc)
+
+	geth.interrupt()
+	geth.expectExit()
 }
 
 func TestHTTPAttachWelcome(t *testing.T) {
 	coinbase := "0x8605cdbbdb6d264aa742e77020dcbc58fcdce182"
 	port := strconv.Itoa(rand.Intn(65535-1024) + 1024) // Yeah, sometimes this will fail, sorry :P
-
-	geth := runGeth(t, "--nat", "none", "--nodiscover", "--etherbase", coinbase, "--rpc", "--rpcport", port)
-	defer geth.interrupt()
+	geth := runGeth(t,
+		"--port", "0", "--maxpeers", "0", "--nodiscover", "--nat", "none",
+		"--etherbase", coinbase, "--rpc", "--rpcport", port)
 
 	time.Sleep(2 * time.Second) // Simple way to wait for the RPC endpoint to open
 	testAttachWelcome(t, geth, "http://localhost:"+port)
+
+	geth.interrupt()
+	geth.expectExit()
 }
 
 func TestWSAttachWelcome(t *testing.T) {
 	coinbase := "0x8605cdbbdb6d264aa742e77020dcbc58fcdce182"
 	port := strconv.Itoa(rand.Intn(65535-1024) + 1024) // Yeah, sometimes this will fail, sorry :P
 
-	geth := runGeth(t, "--nat", "none", "--nodiscover", "--etherbase", coinbase, "--ws", "--wsport", port)
-	defer geth.interrupt()
+	geth := runGeth(t,
+		"--port", "0", "--maxpeers", "0", "--nodiscover", "--nat", "none",
+		"--etherbase", coinbase, "--ws", "--wsport", port)
 
 	time.Sleep(2 * time.Second) // Simple way to wait for the RPC endpoint to open
 	testAttachWelcome(t, geth, "ws://localhost:"+port)
+
+	geth.interrupt()
+	geth.expectExit()
 }
 
 func testAttachWelcome(t *testing.T, geth *testgeth, endpoint string) {
@@ -135,7 +145,6 @@ func testAttachWelcome(t *testing.T, geth *testgeth, endpoint string) {
 		sort.Strings(apis)
 		return apis
 	})
-	attach.setTemplateFunc("prompt", func() string { return console.DefaultPrompt })
 
 	// Verify the actual welcome message to the required template
 	attach.expect(`
@@ -147,6 +156,7 @@ at block: 0 ({{niltime}}){{if ipc}}
  datadir: {{datadir}}{{end}}
  modules:{{range apis}} {{.}}:1.0{{end}}
 
-{{prompt}}
+> {{.InputLine "exit" }}
 `)
+	attach.expectExit()
 }