diff --git a/Basic/Core/pdlbroadcast.c b/Basic/Core/pdlbroadcast.c index 2e86317c9..5c33c3a9b 100644 --- a/Basic/Core/pdlbroadcast.c +++ b/Basic/Core/pdlbroadcast.c @@ -249,16 +249,17 @@ pdl_error pdl_dim_checks( continue; } PDL_Indx *dims = pdl->dims; - if ((load_only || (creating && !creating[i])) && ninds > PDLMAX(0,ndims)) { - /* Dimensional promotion when number of dims is less than required: */ - for (j=0; j PDLMAX(0,ndims) && + ndims < j+1 && + ind_sz < 1 + ) + /* Dimensional promotion when number of dims is less than required: */ + ind_sz = ind_sizes[ind_id] = 1; + /* Now, the real check. */ if ( !(load_only && !((vtable->par_flags[i] & PDL_PARAM_ISCREAT) && (pdl->state & PDL_MYDIMS_TRANS))) && (!creating || creating[i])