diff --git a/core/block_processor.go b/core/block_processor.go
index 829e4314c3e0ab670fd4c8fa8713ce9b707c8a72..dd7fe8962c3342f1ad4c1870372adacca9865933 100644
--- a/core/block_processor.go
+++ b/core/block_processor.go
@@ -349,11 +349,9 @@ func (sm *BlockProcessor) GetBlockReceipts(bhash common.Hash) types.Receipts {
 // the depricated way by re-processing the block.
 func (sm *BlockProcessor) GetLogs(block *types.Block) (logs state.Logs, err error) {
 	receipts := GetBlockReceipts(sm.chainDb, block.Hash())
-	if len(receipts) > 0 {
-		// coalesce logs
-		for _, receipt := range receipts {
-			logs = append(logs, receipt.Logs()...)
-		}
+	// coalesce logs
+	for _, receipt := range receipts {
+		logs = append(logs, receipt.Logs()...)
 	}
 	return logs, nil
 }
diff --git a/core/chain_manager.go b/core/chain_manager.go
index 1647031b1c087460872b00f671c34176cdfe85ac..cf5b8bd78bbd6dc4e40b42e5c9794a2ade3e3455 100644
--- a/core/chain_manager.go
+++ b/core/chain_manager.go
@@ -647,7 +647,9 @@ func (self *ChainManager) InsertChain(chain types.Blocks) (int, error) {
 			queue[i] = ChainSplitEvent{block, logs}
 			queueEvent.splitCount++
 		}
-		PutBlockReceipts(self.chainDb, block, receipts)
+		if err := PutBlockReceipts(self.chainDb, block, receipts); err != nil {
+			glog.V(logger.Warn).Infoln("error writing block receipts:", err)
+		}
 
 		stats.processed++
 	}
diff --git a/core/filter.go b/core/filter.go
index 8a876396be7fa4265f9faaca02b7790e2bcb6d80..c34d6ff6ccd722f9aa1f04e3c842e5c1d411f623 100644
--- a/core/filter.go
+++ b/core/filter.go
@@ -22,6 +22,8 @@ import (
 	"github.com/ethereum/go-ethereum/common"
 	"github.com/ethereum/go-ethereum/core/state"
 	"github.com/ethereum/go-ethereum/core/types"
+	"github.com/ethereum/go-ethereum/logger"
+	"github.com/ethereum/go-ethereum/logger/glog"
 )
 
 type AccountChange struct {
@@ -111,7 +113,7 @@ done:
 			// Get the logs of the block
 			unfiltered, err := self.eth.BlockProcessor().GetLogs(block)
 			if err != nil {
-				chainlogger.Warnln("err: filter get logs ", err)
+				glog.V(logger.Warn).Infoln("err: filter get logs ", err)
 
 				break
 			}
diff --git a/miner/worker.go b/miner/worker.go
index df3681470da3c6a56815b90b6c6c80833e2e1d94..aa2132a51ca13d4c3aa32d42524b38328d1c06f4 100644
--- a/miner/worker.go
+++ b/miner/worker.go
@@ -297,14 +297,17 @@ func (self *worker) wait() {
 				}
 
 				// broadcast before waiting for validation
-				go func(block *types.Block, logs state.Logs) {
+				go func(block *types.Block, logs state.Logs, receipts []*types.Receipt) {
 					self.mux.Post(core.NewMinedBlockEvent{block})
 					self.mux.Post(core.ChainEvent{block, block.Hash(), logs})
 					if stat == core.CanonStatTy {
 						self.mux.Post(core.ChainHeadEvent{block})
 						self.mux.Post(logs)
 					}
-				}(block, work.state.Logs())
+					if err := core.PutBlockReceipts(self.chainDb, block, receipts); err != nil {
+						glog.V(logger.Warn).Infoln("error writing block receipts:", err)
+					}
+				}(block, work.state.Logs(), work.receipts)
 			}
 
 			// check staleness and display confirmation