diff --git a/p2p/server.go b/p2p/server.go
index e510be521be2cf70aa8b27b6fc5e46963f907990..35b584a273160abd60487ad47d357fba97d0f69c 100644
--- a/p2p/server.go
+++ b/p2p/server.go
@@ -436,15 +436,15 @@ func (self *BlacklistMap) Exists(pubkey []byte) (ok bool) {
 }
 
 func (self *BlacklistMap) Put(pubkey []byte) error {
-	self.lock.RLock()
-	defer self.lock.RUnlock()
+	self.lock.Lock()
+	defer self.lock.Unlock()
 	self.blacklist[string(pubkey)] = true
 	return nil
 }
 
 func (self *BlacklistMap) Delete(pubkey []byte) error {
-	self.lock.RLock()
-	defer self.lock.RUnlock()
+	self.lock.Lock()
+	defer self.lock.Unlock()
 	delete(self.blacklist, string(pubkey))
 	return nil
 }
diff --git a/rpc/packages.go b/rpc/packages.go
index ac3127356a5fda220a248c047a4cb910976d17d9..ef31ff1e1100cc18378b4445a0b7a7ad0ef6680e 100644
--- a/rpc/packages.go
+++ b/rpc/packages.go
@@ -109,8 +109,8 @@ func (self *EthereumApi) NewFilterString(args string, reply *interface{}) error
 }
 
 func (self *EthereumApi) FilterChanged(id int, reply *interface{}) error {
-	self.logMut.RLock()
-	defer self.logMut.RUnlock()
+	self.logMut.Lock()
+	defer self.logMut.Unlock()
 
 	*reply = toLogs(self.logs[id])
 
@@ -309,8 +309,8 @@ func (p *EthereumApi) NewWhisperFilter(args *xeth.Options, reply *interface{}) e
 }
 
 func (self *EthereumApi) MessagesChanged(id int, reply *interface{}) error {
-	self.messagesMut.RLock()
-	defer self.messagesMut.RUnlock()
+	self.messagesMut.Lock()
+	defer self.messagesMut.Unlock()
 
 	*reply = self.messages[id]