diff --git a/lib/igt_alsa.c b/lib/igt_alsa.c
index b5574c7622a1..3ad0521aa6ee 100644
--- a/lib/igt_alsa.c
+++ b/lib/igt_alsa.c
@@ -28,7 +28,8 @@
 
 #include <alsa/asoundlib.h>
 
-#include "igt.h"
+#include "igt_alsa.h"
+#include "igt_core.h"
 
 #define HANDLES_MAX	8
 
diff --git a/lib/igt_alsa.h b/lib/igt_alsa.h
index 8f7724ad9727..50795130a4f8 100644
--- a/lib/igt_alsa.h
+++ b/lib/igt_alsa.h
@@ -29,7 +29,6 @@
 
 #include "config.h"
 
-#include "igt.h"
 #include <stdbool.h>
 
 struct alsa;
diff --git a/lib/igt_audio.c b/lib/igt_audio.c
index 6b35529aa224..2321d1c6e3f1 100644
--- a/lib/igt_audio.c
+++ b/lib/igt_audio.c
@@ -29,7 +29,8 @@
 #include <math.h>
 #include <gsl/gsl_fft_real.h>
 
-#include "igt.h"
+#include "igt_audio.h"
+#include "igt_core.h"
 
 #define FREQS_MAX	8
 
diff --git a/lib/igt_audio.h b/lib/igt_audio.h
index 21adfee82756..b3b658a4017f 100644
--- a/lib/igt_audio.h
+++ b/lib/igt_audio.h
@@ -29,7 +29,6 @@
 
 #include "config.h"
 
-#include "igt.h"
 #include <stdbool.h>
 
 struct audio_signal;
diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
index dcd8855f3d1b..fb250366ca2c 100644
--- a/lib/igt_chamelium.c
+++ b/lib/igt_chamelium.c
@@ -35,7 +35,11 @@
 #include <pixman.h>
 #include <cairo.h>
 
-#include "igt.h"
+#include "igt_chamelium.h"
+#include "igt_core.h"
+#include "igt_aux.h"
+#include "igt_kms.h"
+#include "igt_frame.h"
 
 /**
  * SECTION:igt_chamelium
diff --git a/lib/igt_chamelium.h b/lib/igt_chamelium.h
index a2d626eca957..af9655a0b1cf 100644
--- a/lib/igt_chamelium.h
+++ b/lib/igt_chamelium.h
@@ -28,8 +28,12 @@
 
 #include "config.h"
 
-#include "igt.h"
 #include <stdbool.h>
+#include <xf86drmMode.h>
+
+#include "igt_debugfs.h"
+
+struct igt_fb;
 
 struct chamelium;
 struct chamelium_port;
diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
index f2a94b5572ea..a2061ff6138e 100644
--- a/lib/igt_dummyload.c
+++ b/lib/igt_dummyload.c
@@ -22,11 +22,18 @@
  *
  */
 
-#include "igt.h"
-#include "igt_dummyload.h"
 #include <time.h>
 #include <signal.h>
 #include <sys/syscall.h>
+#include <sys/mman.h>
+
+#include <i915_drm.h>
+
+#include "igt_dummyload.h"
+#include "igt_gt.h"
+#include "intel_batchbuffer.h"
+#include "intel_chipset.h"
+#include "ioctl_wrappers.h"
 
 /**
  * SECTION:igt_dummyload
diff --git a/lib/igt_frame.c b/lib/igt_frame.c
index 0f6bca243e39..6984c02e9912 100644
--- a/lib/igt_frame.c
+++ b/lib/igt_frame.c
@@ -32,7 +32,8 @@
 #include <gsl/gsl_statistics_double.h>
 #include <gsl/gsl_fit.h>
 
-#include "igt.h"
+#include "igt_frame.h"
+#include "igt_core.h"
 
 /**
  * SECTION:igt_frame
diff --git a/lib/igt_frame.h b/lib/igt_frame.h
index 680ad5bbd293..11f96cbea203 100644
--- a/lib/igt_frame.h
+++ b/lib/igt_frame.h
@@ -29,7 +29,6 @@
 
 #include "config.h"
 
-#include "igt.h"
 #include <stdbool.h>
 
 bool igt_frame_dump_is_enabled(void);
diff --git a/lib/igt_gvt.c b/lib/igt_gvt.c
index a78e98e9f233..acbc349145ce 100644
--- a/lib/igt_gvt.c
+++ b/lib/igt_gvt.c
@@ -21,16 +21,16 @@
  * IN THE SOFTWARE.
  */
 
-#include "igt.h"
-#include "igt_gvt.h"
-#include "igt_sysfs.h"
-#include "igt_kmod.h"
-
 #include <signal.h>
 #include <dirent.h>
 #include <unistd.h>
 #include <fcntl.h>
 
+#include "igt_gvt.h"
+#include "igt_sysfs.h"
+#include "igt_kmod.h"
+#include "drmtest.h"
+
 /**
  * SECTION:igt_gvt
  * @short_description: Graphics virtualization technology library
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 26691e308cbd..58624cd12f32 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -21,13 +21,13 @@
  * IN THE SOFTWARE.
  */
 
-#include "igt.h"
+#include <signal.h>
+#include <errno.h>
+
 #include "igt_core.h"
 #include "igt_sysfs.h"
 #include "igt_kmod.h"
 
-#include <signal.h>
-
 /**
  * SECTION:igt_kmod
  * @short_description: Wrappers around libkmod for module loading/unloading
diff --git a/lib/igt_sysfs.h b/lib/igt_sysfs.h
index d666438a667a..07e75042307a 100644
--- a/lib/igt_sysfs.h
+++ b/lib/igt_sysfs.h
@@ -26,6 +26,7 @@
 #define __IGT_SYSFS_H__
 
 #include <stdbool.h>
+#include <stdarg.h>
 
 int igt_sysfs_open(int device, int *idx);
 int igt_sysfs_open_parameters(int device);
diff --git a/lib/igt_vgem.c b/lib/igt_vgem.c
index 3dd9621d0459..7f933b23bd4f 100644
--- a/lib/igt_vgem.c
+++ b/lib/igt_vgem.c
@@ -21,10 +21,14 @@
  * IN THE SOFTWARE.
  */
 
-#include "igt.h"
-#include "igt_vgem.h"
-
 #include <sys/mman.h>
+#include <xf86drm.h>
+#include <xf86drmMode.h>
+#include <errno.h>
+
+#include "igt_vgem.h"
+#include "igt_core.h"
+#include "ioctl_wrappers.h"
 
 /**
  * SECTION:igt_vgem
diff --git a/lib/igt_vgem.h b/lib/igt_vgem.h
index 002ad7f09ceb..92045f0e7a81 100644
--- a/lib/igt_vgem.h
+++ b/lib/igt_vgem.h
@@ -25,6 +25,7 @@
 #define IGT_VGEM_H
 
 #include <stdint.h>
+#include <stdbool.h>
 
 struct vgem_bo {
 	uint32_t handle;
