diff --git a/cmd/ethereum/main.go b/cmd/ethereum/main.go
index 7b912cf6e7532f8f6408a4d4c4f1ee6522e303fa..89e19e47f9384e526ce8d77cfd435b1542285475 100644
--- a/cmd/ethereum/main.go
+++ b/cmd/ethereum/main.go
@@ -127,6 +127,7 @@ runtime will execute the file and exit.
 		utils.RPCEnabledFlag,
 		utils.RPCListenAddrFlag,
 		utils.RPCPortFlag,
+		utils.UnencryptedKeysFlag,
 		utils.VMDebugFlag,
 		//utils.VMTypeFlag,
 	}
@@ -213,20 +214,24 @@ func accountList(ctx *cli.Context) {
 
 func accountCreate(ctx *cli.Context) {
 	am := utils.GetAccountManager(ctx)
-	fmt.Println("The new account will be encrypted with a passphrase.")
-	fmt.Println("Please enter a passphrase now.")
-	auth, err := readPassword("Passphrase: ", true)
-	if err != nil {
-		utils.Fatalf("%v", err)
-	}
-	confirm, err := readPassword("Repeat Passphrase: ", false)
-	if err != nil {
-		utils.Fatalf("%v", err)
-	}
-	if auth != confirm {
-		utils.Fatalf("Passphrases did not match.")
+	passphrase := ""
+	if !ctx.GlobalBool(utils.UnencryptedKeysFlag.Name) {
+		fmt.Println("The new account will be encrypted with a passphrase.")
+		fmt.Println("Please enter a passphrase now.")
+		auth, err := readPassword("Passphrase: ", true)
+		if err != nil {
+			utils.Fatalf("%v", err)
+		}
+		confirm, err := readPassword("Repeat Passphrase: ", false)
+		if err != nil {
+			utils.Fatalf("%v", err)
+		}
+		if auth != confirm {
+			utils.Fatalf("Passphrases did not match.")
+		}
+		passphrase = auth
 	}
-	acct, err := am.NewAccount(auth)
+	acct, err := am.NewAccount(passphrase)
 	if err != nil {
 		utils.Fatalf("Could not create the account: %v", err)
 	}
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index e945a32eec67f59c8a1fb711dcf2c3840d72d0fe..d8b554278f79d3c164d36406628b808717cc28d3 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -95,6 +95,10 @@ var (
 		Name:  "mine",
 		Usage: "Enable mining",
 	}
+	UnencryptedKeysFlag = cli.BoolFlag{
+		Name:  "unencrypted-keys",
+		Usage: "disable private key disk encryption (for testing)",
+	}
 
 	LogFileFlag = cli.StringFlag{
 		Name:  "logfile",
@@ -220,7 +224,12 @@ func GetChain(ctx *cli.Context) (*core.ChainManager, ethutil.Database, ethutil.D
 
 func GetAccountManager(ctx *cli.Context) *accounts.Manager {
 	dataDir := ctx.GlobalString(DataDirFlag.Name)
-	ks := crypto.NewKeyStorePassphrase(path.Join(dataDir, "keys"))
+	var ks crypto.KeyStore2
+	if ctx.GlobalBool(UnencryptedKeysFlag.Name) {
+		ks = crypto.NewKeyStorePlain(path.Join(dataDir, "plainkeys"))
+	} else {
+		ks = crypto.NewKeyStorePassphrase(path.Join(dataDir, "keys"))
+	}
 	return accounts.NewManager(ks)
 }