diff --git a/libavcodec/ac3enc_template.c b/libavcodec/ac3enc_template.c
index 4689f7020b..4527519175 100644
--- a/libavcodec/ac3enc_template.c
+++ b/libavcodec/ac3enc_template.c
@@ -28,7 +28,11 @@
 
 #include <stdint.h>
 
+#include "libavutil/attributes.h"
 #include "libavutil/internal.h"
+#include "internal.h"
+#include "ac3enc.h"
+#include "eac3enc.h"
 
 /* prototypes for static functions in ac3enc_fixed.c and ac3enc_float.c */
 
diff --git a/libavcodec/h264_mb_template.c b/libavcodec/h264_mb_template.c
index 1c13825a85..7c9d72b35a 100644
--- a/libavcodec/h264_mb_template.c
+++ b/libavcodec/h264_mb_template.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "svq3.h"
+
 #undef FUNC
 #undef PIXEL_SHIFT
 
diff --git a/libavcodec/h264_mc_template.c b/libavcodec/h264_mc_template.c
index 7aec43ba90..0e4e47713d 100644
--- a/libavcodec/h264_mc_template.c
+++ b/libavcodec/h264_mc_template.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "h264.h"
+
 #undef MCFUNC
 
 #if   CHROMA_IDC == 1
diff --git a/libavcodec/h264idct_template.c b/libavcodec/h264idct_template.c
index 42c32d15ed..abf888ed96 100644
--- a/libavcodec/h264idct_template.c
+++ b/libavcodec/h264idct_template.c
@@ -28,6 +28,7 @@
 #include "bit_depth_template.c"
 #include "libavutil/common.h"
 #include "h264.h"
+#include "h264idct.h"
 
 void FUNCC(ff_h264_idct_add)(uint8_t *_dst, int16_t *_block, int stride)
 {
diff --git a/libavcodec/hpel_template.c b/libavcodec/hpel_template.c
index 8315cdd43d..fccfe7610f 100644
--- a/libavcodec/hpel_template.c
+++ b/libavcodec/hpel_template.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/intreadwrite.h"
+
 #include "pixels.h"
 
 #include "bit_depth_template.c"
diff --git a/libavcodec/motion_est_template.c b/libavcodec/motion_est_template.c
index 3123edcf92..2fa97aa8e2 100644
--- a/libavcodec/motion_est_template.c
+++ b/libavcodec/motion_est_template.c
@@ -24,6 +24,8 @@
  * Motion estimation template.
  */
 
+#include "mpegvideo.h"
+
 //Let us hope gcc will remove the unused vars ...(gcc 3.2.2 seems to do it ...)
 #define LOAD_COMMON\
     uint32_t av_unused * const score_map= c->score_map;\
diff --git a/libavcodec/simple_idct_template.c b/libavcodec/simple_idct_template.c
index ac04923d96..95844a2f33 100644
--- a/libavcodec/simple_idct_template.c
+++ b/libavcodec/simple_idct_template.c
@@ -30,6 +30,8 @@
   written by Aaron Holtzman <aholtzma@ess.engr.uvic.ca>)
  */
 
+#include "simple_idct.h"
+
 #include "bit_depth_template.c"
 
 #undef W1
diff --git a/libavcodec/videodsp_template.c b/libavcodec/videodsp_template.c
index c569c30d60..f4ff2ba646 100644
--- a/libavcodec/videodsp_template.c
+++ b/libavcodec/videodsp_template.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <assert.h>
+
 #include "bit_depth_template.c"
 void FUNC(ff_emulated_edge_mc)(uint8_t *buf, const uint8_t *src,
                                ptrdiff_t buf_linesize,
diff --git a/libavcodec/x86/dsputil_qns_template.c b/libavcodec/x86/dsputil_qns_template.c
index c6d4124e20..ebaad252f4 100644
--- a/libavcodec/x86/dsputil_qns_template.c
+++ b/libavcodec/x86/dsputil_qns_template.c
@@ -22,6 +22,12 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <assert.h>
+#include <stdint.h>
+
+#include "libavutil/common.h"
+#include "libavutil/x86/asm.h"
+
 #include "inline_asm.h"
 
 #define MAX_ABS (512 >> (SCALE_OFFSET>0 ? SCALE_OFFSET : 0))
diff --git a/libavcodec/x86/hpeldsp_rnd_template.c b/libavcodec/x86/hpeldsp_rnd_template.c
index 24e04a8f22..c8a68fdf56 100644
--- a/libavcodec/x86/hpeldsp_rnd_template.c
+++ b/libavcodec/x86/hpeldsp_rnd_template.c
@@ -24,6 +24,9 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <stddef.h>
+#include <stdint.h>
+
 // put_pixels
 static void DEF(put, pixels8_x2)(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h)
 {
diff --git a/libavcodec/x86/mpegvideoenc_template.c b/libavcodec/x86/mpegvideoenc_template.c
index d68f9e2c8c..76a5c5a154 100644
--- a/libavcodec/x86/mpegvideoenc_template.c
+++ b/libavcodec/x86/mpegvideoenc_template.c
@@ -20,6 +20,12 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <stdint.h>
+
+#include "libavutil/internal.h"
+#include "libavutil/x86/asm.h"
+#include "libavcodec/mpegvideo.h"
+
 #undef MMREG_WIDTH
 #undef MM
 #undef MOVQ
diff --git a/libavresample/resample_template.c b/libavresample/resample_template.c
index 06da90fe9f..458944ebb2 100644
--- a/libavresample/resample_template.c
+++ b/libavresample/resample_template.c
@@ -18,6 +18,12 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <math.h>
+#include <stdint.h>
+
+#include "libavutil/common.h"
+#include "internal.h"
+
 #if defined(CONFIG_RESAMPLE_DBL)
 #define SET_TYPE(func)  func ## _dbl
 #define FELEM         double
diff --git a/libswscale/x86/rgb2rgb_template.c b/libswscale/x86/rgb2rgb_template.c
index b68824dcbe..1e12446859 100644
--- a/libswscale/x86/rgb2rgb_template.c
+++ b/libswscale/x86/rgb2rgb_template.c
@@ -25,8 +25,10 @@
  */
 
 #include <stddef.h>
+#include <stdint.h>
 
 #include "libavutil/attributes.h"
+#include "libavutil/x86/asm.h"
 
 #undef PREFETCH
 #undef MOVNTQ
diff --git a/libswscale/x86/swscale_template.c b/libswscale/x86/swscale_template.c
index 71a60bc738..67957ac4d4 100644
--- a/libswscale/x86/swscale_template.c
+++ b/libswscale/x86/swscale_template.c
@@ -18,6 +18,11 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <stdint.h>
+
+#include "libavutil/x86/asm.h"
+#include "libswscale/swscale_internal.h"
+
 #undef REAL_MOVNTQ
 #undef MOVNTQ
 #undef MOVNTQ2
diff --git a/libswscale/x86/yuv2rgb_template.c b/libswscale/x86/yuv2rgb_template.c
index d29e3a424d..b3225a4a53 100644
--- a/libswscale/x86/yuv2rgb_template.c
+++ b/libswscale/x86/yuv2rgb_template.c
@@ -21,6 +21,11 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <stdint.h>
+
+#include "libavutil/x86/asm.h"
+#include "libswscale/swscale_internal.h"
+
 #undef MOVNTQ
 #undef EMMS
 #undef SFENCE