diff --git a/src/common_io.c b/src/common_io.c
index 5fb2d9513ec2acc0cd8d389a226b14d427e02539..e05315686dae8615279ca4bcad62ada661522bda 100644
--- a/src/common_io.c
+++ b/src/common_io.c
@@ -502,7 +502,7 @@ void writeXMFline(FILE* xmfFile, char* fileName, char* partTypeGroupName,
  * @param gparts The array of #gpart freshly read in.
  * @param Ndm The number of DM particles read in.
  */
-void prepare_dm_gparts(struct gpart* gparts, size_t Ndm) {
+void prepare_dm_gparts(struct gpart *const gparts, size_t Ndm) {
 
   /* Let's give all these gparts a negative id */
   for (size_t i = 0; i < Ndm; ++i) {
@@ -527,7 +527,7 @@ void prepare_dm_gparts(struct gpart* gparts, size_t Ndm) {
  * @param Ngas The number of gas particles read in.
  * @param Ndm The number of DM particles read in.
  */
-void duplicate_hydro_gparts(struct part* parts, struct gpart* gparts,
+void duplicate_hydro_gparts(struct part *const parts, struct gpart *const gparts,
                             size_t Ngas, size_t Ndm) {
 
   for (size_t i = 0; i < Ngas; ++i) {
@@ -557,7 +557,7 @@ void duplicate_hydro_gparts(struct part* parts, struct gpart* gparts,
  * @param dmparts The array of #gpart containg DM particles to be filled.
  * @param Ndm The number of DM particles.
  */
-void collect_dm_gparts(struct gpart* gparts, size_t Ntot, struct gpart* dmparts,
+void collect_dm_gparts(const struct gpart *const gparts, size_t Ntot, struct gpart *const dmparts,
                        size_t Ndm) {
 
   size_t count = 0;
diff --git a/src/common_io.h b/src/common_io.h
index 4ad0c6fb754c4288a0c731e2b1e2392998719d52..dc7d8d4f9a165ea2d600008b4644d9ae9064a143 100644
--- a/src/common_io.h
+++ b/src/common_io.h
@@ -78,10 +78,10 @@ extern const char* particle_type_names[];
 hid_t hdf5Type(enum DATA_TYPE type);
 size_t sizeOfType(enum DATA_TYPE type);
 
-void collect_dm_gparts(struct gpart* gparts, size_t Ntot, struct gpart* dmparts,
+void collect_dm_gparts(const struct gpart *const gparts, size_t Ntot, struct gpart *const dmparts,
                        size_t Ndm);
-void prepare_dm_gparts(struct gpart* gparts, size_t Ndm);
-void duplicate_hydro_gparts(struct part* parts, struct gpart* gparts,
+void prepare_dm_gparts(struct gpart *const gparts, size_t Ndm);
+void duplicate_hydro_gparts(struct part *const parts, struct gpart *const gparts,
                             size_t Ngas, size_t Ndm);
 
 void readAttribute(hid_t grp, char* name, enum DATA_TYPE type, void* data);