diff --git a/accounts/abi/pack.go b/accounts/abi/pack.go
index 36c58265bd4b5388f428acb64ab0f4ef2903a7e4..dd1c9a5df84f3b4d2a70d4d6182fbeef3d7f8f5b 100644
--- a/accounts/abi/pack.go
+++ b/accounts/abi/pack.go
@@ -73,7 +73,7 @@ func packNum(value reflect.Value) []byte {
 	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
 		return U256(big.NewInt(value.Int()))
 	case reflect.Ptr:
-		return U256(value.Interface().(*big.Int))
+		return U256(new(big.Int).Set(value.Interface().(*big.Int)))
 	default:
 		panic("abi: fatal error")
 	}