diff --git a/src/USER-PTM/ptm_neighbour_ordering.cpp b/src/USER-PTM/ptm_neighbour_ordering.cpp
index c77a779c6885fdaf435f955f0a156b35e6484134..d5948b9dc6df3218be25bfa251bd3f04023ab343 100644
--- a/src/USER-PTM/ptm_neighbour_ordering.cpp
+++ b/src/USER-PTM/ptm_neighbour_ordering.cpp
@@ -5,6 +5,7 @@
 #include <algorithm>
 #include "ptm_constants.h"
 #include "ptm_voronoi_cell.h"
+#include "ptm_neighbour_ordering.h"
 
 
 namespace ptm {
diff --git a/src/USER-PTM/ptm_neighbour_ordering.h b/src/USER-PTM/ptm_neighbour_ordering.h
index e43ced9fd513c21bfddbe24a71c964f5e160dcd3..78bf4d533bd6fb530dfb2f727f787b4130ff3cbe 100644
--- a/src/USER-PTM/ptm_neighbour_ordering.h
+++ b/src/USER-PTM/ptm_neighbour_ordering.h
@@ -1,6 +1,8 @@
 #ifndef PTM_NEIGHBOUR_ORDERING_H
 #define PTM_NEIGHBOUR_ORDERING_H
 
+#include <inttypes.h>
+
 namespace ptm {
 
 int calculate_neighbour_ordering(void* voronoi_handle, int num_points, const double (*_points)[3], int8_t* ordering);
diff --git a/src/USER-PTM/ptm_polar.cpp b/src/USER-PTM/ptm_polar.cpp
index fa199ca6567a87affc0a75ca5e2981454a419c4f..2c255f386b12ec497219fd0ba69ea5bf782918a3 100644
--- a/src/USER-PTM/ptm_polar.cpp
+++ b/src/USER-PTM/ptm_polar.cpp
@@ -89,6 +89,7 @@
 #include <algorithm>
 #include <string.h>
 #include "ptm_quat.h"
+#include "ptm_polar.h"
 
 
 namespace ptm {
diff --git a/src/USER-PTM/ptm_polar.h b/src/USER-PTM/ptm_polar.h
index 15d1f185b77749bf2207a3d44f7382e57b38f057..e1980f974a2d97b984c1b8c9033ff7429fb1eeb3 100644
--- a/src/USER-PTM/ptm_polar.h
+++ b/src/USER-PTM/ptm_polar.h
@@ -3,6 +3,7 @@
 
 #include <stdint.h>
 #include <stdbool.h>
+#include <inttypes.h>
 
 namespace ptm {
 
diff --git a/src/library.h b/src/library.h
index 82071f673b6755191f5a5e58a99cd6acb24ff4b5..f6f8d9d75c2922deef37c5d8182dbaac5666c8e1 100644
--- a/src/library.h
+++ b/src/library.h
@@ -17,6 +17,7 @@
 */
 
 #include <mpi.h>
+#include <inttypes.h>  /* for int64_t */
 
 /* ifdefs allow this file to be included in a C program */