diff --git a/src/sscanf.c b/src/sscanf.c
index 848fa1cc4dc587e437611060312f6a5c7076cf9f..4479aa49fe88867a6d201a384634096e1c8c1d13 100644
--- a/src/sscanf.c
+++ b/src/sscanf.c
@@ -716,6 +716,7 @@ static INT32 PIKE_CONCAT4(very_low_sscanf_,INPUT_SHIFT,_,MATCH_SHIFT)(	 \
 	    }								 \
 	  }								 \
 	  sval.type=T_ARRAY;						 \
+	  DO_IF_CHECKER(sval.subtype=0);				 \
 	  sval.u.array=allocate_array(0);				 \
 	  SET_ONERROR(err, do_free_array, sval.u.array);		 \
 									 \