diff --git a/core/vm/instructions.go b/core/vm/instructions.go
index ca9e775ac5615edd6392ca49bc522ea595369eb9..4d1bd4a34286831048a72af22e46dcdef2d37535 100644
--- a/core/vm/instructions.go
+++ b/core/vm/instructions.go
@@ -727,7 +727,7 @@ func opCreate2(pc *uint64, interpreter *EVMInterpreter, contract *Contract, memo
 }
 
 func opCall(pc *uint64, interpreter *EVMInterpreter, contract *Contract, memory *Memory, stack *Stack) ([]byte, error) {
-	// Pop gas. The actual gas in in interpreter.evm.callGasTemp.
+	// Pop gas. The actual gas in interpreter.evm.callGasTemp.
 	interpreter.intPool.put(stack.pop())
 	gas := interpreter.evm.callGasTemp
 	// Pop other call parameters.
diff --git a/core/vm/memory.go b/core/vm/memory.go
index 722862b1de371f153408419a9888304397a9a902..7e6f0eb940dc7dce10ce0b977ca29f113f252526 100644
--- a/core/vm/memory.go
+++ b/core/vm/memory.go
@@ -29,7 +29,7 @@ type Memory struct {
 	lastGasCost uint64
 }
 
-// NewMemory returns a new memory memory model.
+// NewMemory returns a new memory model.
 func NewMemory() *Memory {
 	return &Memory{}
 }
diff --git a/crypto/secp256k1/libsecp256k1/src/num.h b/crypto/secp256k1/libsecp256k1/src/num.h
index 7bb9c5be8cf5a6d020ef4bfcac1af13902e5d533..eff842200fea1dd239a6dd458d82333ba0be3e76 100644
--- a/crypto/secp256k1/libsecp256k1/src/num.h
+++ b/crypto/secp256k1/libsecp256k1/src/num.h
@@ -54,7 +54,7 @@ static void secp256k1_num_mul(secp256k1_num *r, const secp256k1_num *a, const se
     even if r was negative. */
 static void secp256k1_num_mod(secp256k1_num *r, const secp256k1_num *m);
 
-/** Right-shift the passed number by bits bits. */
+/** Right-shift the passed number by bits. */
 static void secp256k1_num_shift(secp256k1_num *r, int bits);
 
 /** Check whether a number is zero. */
diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go
index f7379e228c3bc130c87209066f275006bd43fae1..8016ebe3d7f4ef72e4e579069bd43b692ba77410 100644
--- a/internal/ethapi/api.go
+++ b/internal/ethapi/api.go
@@ -449,7 +449,7 @@ func (s *PrivateAccountAPI) Sign(ctx context.Context, data hexutil.Bytes, addr c
 // addr = ecrecover(hash, signature)
 //
 // Note, the signature must conform to the secp256k1 curve R, S and V values, where
-// the V value must be be 27 or 28 for legacy reasons.
+// the V value must be 27 or 28 for legacy reasons.
 //
 // https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_ecRecover
 func (s *PrivateAccountAPI) EcRecover(ctx context.Context, data, sig hexutil.Bytes) (common.Address, error) {
diff --git a/internal/jsre/deps/web3.js b/internal/jsre/deps/web3.js
index abd4b4fe581889a8535c883b64f32ffdc494c29c..df920bb1d389b4d0daa3cbc184593e3f16b47784 100644
--- a/internal/jsre/deps/web3.js
+++ b/internal/jsre/deps/web3.js
@@ -1021,7 +1021,7 @@ var formatOutputInt = function (param) {
     var value = param.staticPart() || "0";
 
     // check if it's negative number
-    // it it is, return two's complement
+    // it is, return two's complement
     if (signedIsNegative(value)) {
         return new BigNumber(value, 16).minus(new BigNumber('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 16)).minus(1);
     }
@@ -2250,7 +2250,7 @@ var isAddress = function (address) {
         // check if it has the basic requirements of an address
         return false;
     } else if (/^(0x)?[0-9a-f]{40}$/.test(address) || /^(0x)?[0-9A-F]{40}$/.test(address)) {
-        // If it's all small caps or all all caps, return true
+        // If it's all small caps or all caps, return true
         return true;
     } else {
         // Otherwise check each case
diff --git a/miner/unconfirmed.go b/miner/unconfirmed.go
index 3eb29bc7051e82411b0fe1b921807f01157745d0..3a176e8bd6f68b1cbd400f7a74aa1c259cbc2a06 100644
--- a/miner/unconfirmed.go
+++ b/miner/unconfirmed.go
@@ -43,7 +43,7 @@ type unconfirmedBlock struct {
 }
 
 // unconfirmedBlocks implements a data structure to maintain locally mined blocks
-// have have not yet reached enough maturity to guarantee chain inclusion. It is
+// have not yet reached enough maturity to guarantee chain inclusion. It is
 // used by the miner to provide logs to the user when a previously mined block
 // has a high enough guarantee to not be reorged out of the canonical chain.
 type unconfirmedBlocks struct {
diff --git a/p2p/discv5/database_test.go b/p2p/discv5/database_test.go
index a2ccb646710aad8c4a46d7dcf936e53c7d9b6c8c..2b86dc9ceccb81d72a646e4e8cfd12eec1cc84e5 100644
--- a/p2p/discv5/database_test.go
+++ b/p2p/discv5/database_test.go
@@ -173,7 +173,7 @@ var nodeDBSeedQueryNodes = []struct {
 		),
 		pong: time.Now().Add(-3 * time.Hour),
 	},
-	// This one shouldn't be in in the result set because its
+	// This one shouldn't be in the result set because its
 	// nodeID is the local node's ID.
 	{
 		node: NewNode(
diff --git a/p2p/enode/nodedb_test.go b/p2p/enode/nodedb_test.go
index 57a0424d8d056716227b5c33bc2bb9cbac1e1153..b476a3439d6338bef1c53b28e50f7eaa3d73db27 100644
--- a/p2p/enode/nodedb_test.go
+++ b/p2p/enode/nodedb_test.go
@@ -171,7 +171,7 @@ var nodeDBSeedQueryNodes = []struct {
 		),
 		pong: time.Now().Add(-3 * time.Hour),
 	},
-	// This one shouldn't be in in the result set because its
+	// This one shouldn't be in the result set because its
 	// nodeID is the local node's ID.
 	{
 		node: NewV4(
diff --git a/signer/core/api.go b/signer/core/api.go
index 9a2a49ccc6eddf91b3a1ad3f43fff4c9ebd1fbe0..4f390c1fd61412592583842afb95418f6356d8cc 100644
--- a/signer/core/api.go
+++ b/signer/core/api.go
@@ -411,7 +411,7 @@ func (api *SignerAPI) Sign(ctx context.Context, addr common.MixedcaseAddress, da
 // addr = ecrecover(hash, signature)
 //
 // Note, the signature must conform to the secp256k1 curve R, S and V values, where
-// the V value must be be 27 or 28 for legacy reasons.
+// the V value must be 27 or 28 for legacy reasons.
 //
 // https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_ecRecover
 func (api *SignerAPI) EcRecover(ctx context.Context, data, sig hexutil.Bytes) (common.Address, error) {