diff --git a/accounts/usbwallet/wallet.go b/accounts/usbwallet/wallet.go
index ed786d9b42a8425c70ef38ec5f5221903434eec0..ee539d96535d80f0c6f63bef5b47859ca7f09a99 100644
--- a/accounts/usbwallet/wallet.go
+++ b/accounts/usbwallet/wallet.go
@@ -479,7 +479,8 @@ func (w *wallet) Derive(path accounts.DerivationPath, pin bool) (accounts.Accoun
 
 	if _, ok := w.paths[address]; !ok {
 		w.accounts = append(w.accounts, account)
-		w.paths[address] = path
+		w.paths[address] = make(accounts.DerivationPath, len(path))
+		copy(w.paths[address], path)
 	}
 	return account, nil
 }