diff --git a/src/backend/utils/adt/jsonb_gin.c b/src/backend/utils/adt/jsonb_gin.c
index 204fb8b..b917ec2 100644
*** a/src/backend/utils/adt/jsonb_gin.c
--- b/src/backend/utils/adt/jsonb_gin.c
*************** gin_extract_jsonb_path(PG_FUNCTION_ARGS)
*** 419,425 ****
  				JsonbHashScalarValue(&v, &stack->hash);
  				/* and emit an index entry */
  				entries[i++] = UInt32GetDatum(stack->hash);
! 				/* Note: we assume we'll see KEY before another VALUE */
  				break;
  			case WJB_END_ARRAY:
  			case WJB_END_OBJECT:
--- 419,426 ----
  				JsonbHashScalarValue(&v, &stack->hash);
  				/* and emit an index entry */
  				entries[i++] = UInt32GetDatum(stack->hash);
! 				/* reset hash for next sub-object */
! 				stack->hash = stack->parent->hash;
  				break;
  			case WJB_END_ARRAY:
  			case WJB_END_OBJECT:
