diff --git a/ethutil/value.go b/ethutil/value.go
index e8148b9905ab46ca273ec7e5c0094876bb19ad0c..b1f887f29a71762422058c21651d233c5d380a55 100644
--- a/ethutil/value.go
+++ b/ethutil/value.go
@@ -118,6 +118,8 @@ func (val *Value) BigInt() *big.Int {
 		return b
 	} else if a, ok := val.Val.(*big.Int); ok {
 		return a
+	} else if a, ok := val.Val.(string); ok {
+		return Big(a)
 	} else {
 		return big.NewInt(int64(val.Uint()))
 	}