diff --git a/rpc/args.go b/rpc/args.go
index f730819fd925affc8024c800da5cf63dca44da58..347f604109e018a37fa0149afc49b211e77df8ac 100644
--- a/rpc/args.go
+++ b/rpc/args.go
@@ -22,13 +22,6 @@ func (obj *GetBlockArgs) UnmarshalJSON(b []byte) (err error) {
 	return NewErrorResponse(ErrorDecodeArgs)
 }
 
-func (obj *GetBlockArgs) requirements() error {
-	if obj.BlockNumber == 0 && obj.Hash == "" {
-		return NewErrorResponse("GetBlock requires either a block 'number' or a block 'hash' as argument")
-	}
-	return nil
-}
-
 type NewTxArgs struct {
 	From     string `json:"from"`
 	To       string `json:"to"`
diff --git a/rpc/packages.go b/rpc/packages.go
index b51bde7ce0bb8add66faf890f6d306b45d4973c6..2f694b823f66c1211471bab52fa158fcc2c1061b 100644
--- a/rpc/packages.go
+++ b/rpc/packages.go
@@ -177,15 +177,11 @@ func (self *EthereumApi) AllLogs(args *FilterOptions, reply *interface{}) error
 }
 
 func (p *EthereumApi) GetBlock(args *GetBlockArgs, reply *interface{}) error {
-	err := args.requirements()
-	if err != nil {
-		return err
-	}
-
-	if args.BlockNumber > 0 {
-		*reply = p.xeth.BlockByNumber(args.BlockNumber)
-	} else {
+	// This seems a bit precarious Maybe worth splitting to discrete functions
+	if len(args.Hash) > 0 {
 		*reply = p.xeth.BlockByHash(args.Hash)
+	} else {
+		*reply = p.xeth.BlockByNumber(args.BlockNumber)
 	}
 	return nil
 }