diff --git a/ethereal/ethereum.go b/ethereal/ethereum.go
index 1a6ab0044d03c3643286f62ccc23b202a7a232b0..bacf6d44613f3de62f3fea51952a678e5116f344 100644
--- a/ethereal/ethereum.go
+++ b/ethereal/ethereum.go
@@ -100,8 +100,12 @@ func main() {
 	}
 
 	if StartRpc {
-		ethereum.RpcServer = ethrpc.NewJsonRpcServer(ethpub.NewPEthereum(ethereum.StateManager(), ethereum.BlockChain(), ethereum.TxPool()))
-		go ethereum.RpcServer.Start()
+		ethereum.RpcServer, err = ethrpc.NewJsonRpcServer(ethpub.NewPEthereum(ethereum.StateManager(), ethereum.BlockChain(), ethereum.TxPool()))
+		if err != nil {
+			log.Println("Could not start RPC interface:", err)
+		} else {
+			go ethereum.RpcServer.Start()
+		}
 	}
 
 	log.Printf("Starting Ethereum GUI v%s\n", ethutil.Config.Ver)
diff --git a/ethereum/ethereum.go b/ethereum/ethereum.go
index 2f05bf2a177fb3764e5abd29b20844f2240b50cf..8ef061be06d86f905f23394af640ea6e3181bc2e 100644
--- a/ethereum/ethereum.go
+++ b/ethereum/ethereum.go
@@ -133,8 +133,12 @@ func main() {
 		go console.Start()
 	}
 	if StartRpc {
-		ethereum.RpcServer = ethrpc.NewJsonRpcServer(ethpub.NewPEthereum(ethereum.StateManager(), ethereum.BlockChain(), ethereum.TxPool()))
-		go ethereum.RpcServer.Start()
+		ethereum.RpcServer, err = ethrpc.NewJsonRpcServer(ethpub.NewPEthereum(ethereum.StateManager(), ethereum.BlockChain(), ethereum.TxPool()))
+		if err != nil {
+			logger.Infoln("Could not start RPC interface:", err)
+		} else {
+			go ethereum.RpcServer.Start()
+		}
 	}
 
 	RegisterInterrupts(ethereum)