diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c
index ff9bfcc455cf57dcf7bb9232251f39acad701969..0c4fcbe0d340083f802995da0c0238f61c937fd3 100644
--- a/src/backend/utils/adt/numeric.c
+++ b/src/backend/utils/adt/numeric.c
@@ -3019,7 +3019,7 @@ int2_accum(PG_FUNCTION_ARGS)
 	if (!PG_ARGISNULL(1))
 	{
 #ifdef HAVE_INT128
-		do_int128_accum(state, (int128) PG_GETARG_INT32(1));
+		do_int128_accum(state, (int128) PG_GETARG_INT16(1));
 #else
 		Numeric		newval;