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 571f3a30005cfb285011ce3fc854a9cfd70fc003..97227a64de894813e5df7d8fec1ed4303f8247c6 100644
--- a/rpc/packages.go
+++ b/rpc/packages.go
@@ -174,15 +174,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
 }