diff --git a/gcc/cobol/charmaps-copy.cc b/gcc/cobol/charmaps-copy.cc
index bac76fcd06b663844092b8f315d305f319b76fd0..44e943c1b16222df3c6bf481446f63db9cfa5e6b 100644
--- a/gcc/cobol/charmaps-copy.cc
+++ b/gcc/cobol/charmaps-copy.cc
@@ -44,6 +44,8 @@
 #include <locale.h>
 #include <iconv.h>
 
+#include "gcobolio.h"
+#include "ec.h"
 #include "libgcobol.h"
 #include "charmaps.h"
 #include "valconv.h"
diff --git a/gcc/cobol/genapi.cc b/gcc/cobol/genapi.cc
index 5caa3e979f5b86697ea3aa1b1a3ee210e1ace1a7..ab563de189af6f142ec41a1754f416ca103f816f 100644
--- a/gcc/cobol/genapi.cc
+++ b/gcc/cobol/genapi.cc
@@ -47,6 +47,8 @@
 #include "genapi.h"
 #include "genmath.h"
 #include "structs.h"
+#include "gcobolio.h"
+#include "ec.h"
 #include "libgcobol.h"
 #include "charmaps.h"
 #include "valconv.h"
diff --git a/gcc/cobol/genmath.cc b/gcc/cobol/genmath.cc
index a082e372aa7398718cffda3144737411b26d1b1e..cb43b1284d1640f056617e853f833c8c77672289 100644
--- a/gcc/cobol/genmath.cc
+++ b/gcc/cobol/genmath.cc
@@ -34,6 +34,8 @@
 #include "genutil.h"
 #include "gengen.h"
 #include "structs.h"
+#include "gcobolio.h"
+#include "ec.h"
 #include "libgcobol.h"
 #include "cbldiag.h"
 #include "show_parse.h"
diff --git a/gcc/cobol/genutil.cc b/gcc/cobol/genutil.cc
index a7a1ef64f6382ccabd66356b7f3be001ec34d454..e439ab25b3520b23647b6ef86e08a7233ef91b60 100644
--- a/gcc/cobol/genutil.cc
+++ b/gcc/cobol/genutil.cc
@@ -38,6 +38,8 @@
 #include "gengen.h"
 #include "genutil.h"
 #include "structs.h"
+#include "gcobolio.h"
+#include "ec.h"
 #include "libgcobol.h"
 #include "charmaps.h"
 #include "cbldiag.h"
diff --git a/libgcobol/charmaps.cc b/libgcobol/charmaps.cc
index 4d18c133060b2e9d843acba7090e6bfb33808299..1a981578815185f0fcd91af994f32224cc6ca8e1 100644
--- a/libgcobol/charmaps.cc
+++ b/libgcobol/charmaps.cc
@@ -44,6 +44,8 @@
 #include <locale.h>
 #include <iconv.h>
 
+#include "gcobolio.h"
+#include "ec.h"
 #include "libgcobol.h"
 #include "charmaps.h"
 #include "valconv.h"
diff --git a/libgcobol/constants.cc b/libgcobol/constants.cc
index b33b28c34a6483a09145c5ca80917277ec570a83..06f625a0f542c8e6d773423188737a7dc11a7845 100644
--- a/libgcobol/constants.cc
+++ b/libgcobol/constants.cc
@@ -40,6 +40,8 @@
 #include <algorithm>
 #include <unordered_map>
 
+#include "gcobolio.h"
+#include "ec.h"
 #include "libgcobol.h"
 #include "gfileio.h"
 #include "charmaps.h"
diff --git a/libgcobol/gcobolio.h b/libgcobol/gcobolio.h
index 3b5d519221284829b891b5f6f19685b724359159..e6c046fcbf6de3f66ccd849798287abef2cfbff3 100644
--- a/libgcobol/gcobolio.h
+++ b/libgcobol/gcobolio.h
@@ -33,6 +33,7 @@
 #include "common-defs.h"
 #include "io.h"
 
+#include <stdio.h>
 #include <map>
 #include <unordered_map>
 #include <vector>
diff --git a/libgcobol/gfileio.cc b/libgcobol/gfileio.cc
index 6d02fe935468e03455a0c46d748b01297141e2c2..9f9bd275dfcdadb27926d16900e154a97a247aae 100644
--- a/libgcobol/gfileio.cc
+++ b/libgcobol/gfileio.cc
@@ -40,6 +40,8 @@
 #include <unistd.h>
 #include <algorithm>
 
+#include "gcobolio.h"
+#include "ec.h"
 #include "libgcobol.h"
 #include "gfileio.h"
 #include "charmaps.h"
diff --git a/libgcobol/gmath.cc b/libgcobol/gmath.cc
index db76ae1c7739d33e53d5982e5be9a92b053566cd..942bfbe63dc5ccdbf0f74ba3dfd9a2af3c6c5bdb 100644
--- a/libgcobol/gmath.cc
+++ b/libgcobol/gmath.cc
@@ -39,6 +39,8 @@
 #include <unistd.h>
 #include <algorithm>
 
+#include "gcobolio.h"
+#include "ec.h"
 #include "libgcobol.h"
 #include "common-defs.h"
 #include "gmath.h"
diff --git a/libgcobol/intrinsic.cc b/libgcobol/intrinsic.cc
index 1372897faf3104815c650b064dfbae1657a65230..f9f849319cb05f1be515689ebea6e112102593dc 100644
--- a/libgcobol/intrinsic.cc
+++ b/libgcobol/intrinsic.cc
@@ -44,6 +44,8 @@
 #include <langinfo.h>
 #include <string.h>
 
+#include "gcobolio.h"
+#include "ec.h"
 #include "libgcobol.h"
 #include "charmaps.h"
 
diff --git a/libgcobol/libgcobol.cc b/libgcobol/libgcobol.cc
index f267c45fe39f04b183d15b21cd53f2dac0c32016..f9986cc042de7f36ce8e76af1d3b973af1161e44 100644
--- a/libgcobol/libgcobol.cc
+++ b/libgcobol/libgcobol.cc
@@ -49,6 +49,8 @@
 #include <dirent.h>
 #include <sys/resource.h>
 
+#include "gcobolio.h"
+#include "ec.h"
 #include "libgcobol.h"
 #include "gfileio.h"
 #include "charmaps.h"
diff --git a/libgcobol/libgcobol.h b/libgcobol/libgcobol.h
index 0e0e289ecbb1da33fcddc7f3d27258f8faf56bc3..a3461762c80201cbb49dcbf13b699ef4fa2f995f 100644
--- a/libgcobol/libgcobol.h
+++ b/libgcobol/libgcobol.h
@@ -36,11 +36,6 @@
 #include <unordered_map>
 #include <vector>
 
-#include "gcobolio.h"
-
- #include "ec.h"
-
-
 #define MIN_FIELD_BLOCK_SIZE (16)
 
 // RUNTIME structures *must* match the ones created in structs.c and initialized
diff --git a/libgcobol/valconv.cc b/libgcobol/valconv.cc
index 4eff27d83c462cad60828794e158d9728737b030..82fc6cf07789084dae4c59db383eecaa5536cc9d 100644
--- a/libgcobol/valconv.cc
+++ b/libgcobol/valconv.cc
@@ -43,6 +43,8 @@
 #include <unordered_map>
 #include <set>
 
+#include "gcobolio.h"
+#include "ec.h"
 #include "libgcobol.h"
 #include "gfileio.h"
 #include "charmaps.h"