diff --git a/src/basetime.c b/src/basetime.c
index 5113a1c9786943e172a1598845e1eb182943d966..934a468b0e15ac68699b6b4349532bbffec10d96 100644
--- a/src/basetime.c
+++ b/src/basetime.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <stddef.h>  // for NULL
 #include "cdi.h"
 #include "basetime.h"
diff --git a/src/binary.c b/src/binary.c
index c7ceb612b202e8deb8bba8686677408dfb38fc93..d21b967b37c9b5ff2322eca4b0d0f8b90e970cf8 100644
--- a/src/binary.c
+++ b/src/binary.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #define CDI_BIGENDIAN 0     // Byte order BIGENDIAN
 #define CDI_LITTLEENDIAN 1  // Byte order LITTLEENDIAN
 #include "error.h"
diff --git a/src/calendar.c b/src/calendar.c
index 6b84f04b8029bc2f210b5d285226ef8cbc785c67..9fb5e96a031abff5e782362ceffaf1435ed7d9ca 100644
--- a/src/calendar.c
+++ b/src/calendar.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <stdio.h>
 
 #include "calendar.h"
diff --git a/src/cdf_records.c b/src/cdf_records.c
index 050c837abff7bc9fc290c7680b6c64549d18ce0a..b047c224ca9a22e3afe5e5ff759ba43e862ba597 100644
--- a/src/cdf_records.c
+++ b/src/cdf_records.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include "dmemory.h"
 #include "cdi_int.h"
 
diff --git a/src/cdf_util.c b/src/cdf_util.c
index 6740781643e100955aa3725d7cdcc752107f7819..47c7a3c7cafce0531fadbf0a77239e062a080a6c 100644
--- a/src/cdf_util.c
+++ b/src/cdf_util.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <string.h>
 #include <ctype.h>
 
diff --git a/src/cdi_across.c b/src/cdi_across.c
index f8c9c6eb8af4392f99d880afa700fc42ebd01ab5..e0964a3bf176f6bea40391d81319e0151481f4ef 100644
--- a/src/cdi_across.c
+++ b/src/cdi_across.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include "cdi_across.h"
 
 #ifdef HAVE_ACROSS
diff --git a/src/cdi_att.c b/src/cdi_att.c
index 69e6b8f55b4e09a6b4774dca9d7571442b7f9df7..4c699209d0478e694dc1e00229e925f2684a1f4a 100644
--- a/src/cdi_att.c
+++ b/src/cdi_att.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <limits.h>
 #include <stdio.h>
 #include <string.h>
diff --git a/src/cdi_cksum.c b/src/cdi_cksum.c
index d482c937d99e6d6b1e5cf31917b897c86e0850b2..6ea8d2fc424e1188d8c1b554b36786a97b9460fa 100644
--- a/src/cdi_cksum.c
+++ b/src/cdi_cksum.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <inttypes.h>
 #include <sys/types.h>
 #include <stdlib.h>
diff --git a/src/cdi_datetime.c b/src/cdi_datetime.c
index b85463627531c57994105d8d7ceee5a9b8929434..cfbf242fae9e6465538c0c68805d39fedf6818da 100644
--- a/src/cdi_datetime.c
+++ b/src/cdi_datetime.c
@@ -1,7 +1,7 @@
 /* DO NOT REMOVE the config.h include file under any circumstances,
  * it's very much needed on some platforms */
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
 #endif
 /* DO NOT REMOVE the above config.h include file under any
  * circumstances as long as it's the autoconf configuration header
diff --git a/src/cdi_error.c b/src/cdi_error.c
index 9ebc0cb58079977d3eb21b77003bb89602091e31..b28705738866cd2849ad1e6ec72ec0d5c255d79d 100644
--- a/src/cdi_error.c
+++ b/src/cdi_error.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>
diff --git a/src/cdi_fdb.c b/src/cdi_fdb.c
index 36d448c353c64a4c8c56068436f27c321c2009a8..dae1a353612105b36074700116666fb214698b44 100644
--- a/src/cdi_fdb.c
+++ b/src/cdi_fdb.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include "cdi_fdb.h"
 
 int cdi_fdb_dummy;
diff --git a/src/cdi_key.c b/src/cdi_key.c
index fd7f66b8b015beaef43d517931886989a52f0be3..21da47ca8f742f785b96b73fd9be5e20fbfcd847 100644
--- a/src/cdi_key.c
+++ b/src/cdi_key.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include "cdi.h"
 #include "cdi_int.h"
 #include "zaxis.h"
diff --git a/src/cdi_query.c b/src/cdi_query.c
index a6b45d1647291615723c9d996830deda20d01679..91dc9a7d59e0bc0c42ee2eca3208c03dacc60a1b 100644
--- a/src/cdi_query.c
+++ b/src/cdi_query.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <string.h>
 #include <stdlib.h>
 #include "cdi.h"
diff --git a/src/extralib.c b/src/extralib.c
index a52ea832ed3907aba42a9da78a473b5ecd582b54..37e11cf9acda49b118750f768f40a4502e912464 100644
--- a/src/extralib.c
+++ b/src/extralib.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/gaussian_latitudes.c b/src/gaussian_latitudes.c
index 4b8992cab4050e3cd25f6ad1a3149073f9e6a0b6..b0e28056f3dac16fddf09a5ac9756bdc23d495f4 100644
--- a/src/gaussian_latitudes.c
+++ b/src/gaussian_latitudes.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdbool.h>
diff --git a/src/get_num_missvals.c b/src/get_num_missvals.c
index 5811799e930a9fdec9833d3cdddd19017a68c18c..b0219d146ab196133a6bf823339f713753734d37 100644
--- a/src/get_num_missvals.c
+++ b/src/get_num_missvals.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include "get_num_missvals.h"
 #include "cdi_int.h"
 
diff --git a/src/getline.c b/src/getline.c
index 8b06e5f627326f99899449e4c177c65b870119f8..9e9a1cdad3d057db3fa85740c9d826caadb43446 100644
--- a/src/getline.c
+++ b/src/getline.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 /*
  * getline.c --- replacement for GNU getline if not available in libc
  *
diff --git a/src/ieglib.c b/src/ieglib.c
index b228381ccb936da83da3b2421e8adfd923936c9a..836e89c8577b92f3282ca1c5ad2fc2412555008d 100644
--- a/src/ieglib.c
+++ b/src/ieglib.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/input_file.c b/src/input_file.c
index 61156846a293b08df08b360c22898c9c5a9face3..4a2a1bca735a91aa21b642ed5f63793bf0ddefb9 100644
--- a/src/input_file.c
+++ b/src/input_file.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #define _XOPEN_SOURCE 600
 #include "input_file.h"
 
diff --git a/src/institution.c b/src/institution.c
index 1d7ed15a998501dea2c2bb1c47f60d4f6a9cf8d2..be445bff335fdeba0469093143c65c5819b643dc 100644
--- a/src/institution.c
+++ b/src/institution.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <assert.h>
 #include <stdlib.h>
 #include <limits.h>
diff --git a/src/iterator.c b/src/iterator.c
index 6c152276472c312759391ae8bf5c989ccb0b7f8f..3018df21f7b391c210c6de3c192f9e1702a5d49e 100644
--- a/src/iterator.c
+++ b/src/iterator.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include "cdi.h"
 #include "dmemory.h"
 #include "iterator.h"
diff --git a/src/iterator_fallback.c b/src/iterator_fallback.c
index 4be6f2faf6ed456d1bcfaac4e4ba939de8de165c..92ac6c374dd2590189f8690f3b7124d656f0ccac 100644
--- a/src/iterator_fallback.c
+++ b/src/iterator_fallback.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include "iterator_fallback.h"
 
 #include "cdi.h"
diff --git a/src/julian_date.c b/src/julian_date.c
index 4d2c709e9e138f43bdaf90dae817baafd3efdd0e..18ddddbcaecb3144f6aa4aa5246c7683f7a5e049 100644
--- a/src/julian_date.c
+++ b/src/julian_date.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include "julian_date.h"
 #include <math.h>
 
diff --git a/src/model.c b/src/model.c
index bf28ce120f54269d8c5952d981413dd3bb19a31b..bd93b6eb7c44ba2913ce97a02b7cd6fcf1b1311f 100644
--- a/src/model.c
+++ b/src/model.c
@@ -1,5 +1,17 @@
-#include <stdlib.h>
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <limits.h>
+#include <stdlib.h>
 
 #include "cdi.h"
 #include "cdi_int.h"
diff --git a/src/pio_conf.c b/src/pio_conf.c
index ac0e9ece6805e40730d0dc80a1b895329fcd2e7a..9e1bf8ef4b5ddca837fdebccfec28b825b486795 100644
--- a/src/pio_conf.c
+++ b/src/pio_conf.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <errno.h>
 #include <limits.h>
 #include <stdlib.h>
diff --git a/src/referenceCounting.c b/src/referenceCounting.c
index 2807b850c07fba28465495ab7a8faee2b13db090..3a9b7634568c05a8bb833e8c8b8439a60d650757 100644
--- a/src/referenceCounting.c
+++ b/src/referenceCounting.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include "referenceCounting.h"
 
 #include "dmemory.h"
diff --git a/src/resource_unpack.c b/src/resource_unpack.c
index e1b3fe08421dc7446bf36b1fb9c4c4ced591031b..d0e25d08e8ad9c7a40138385e162d70b6c1d0691 100644
--- a/src/resource_unpack.c
+++ b/src/resource_unpack.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include "cdi.h"
 #include "dmemory.h"
 #include "grid.h"
diff --git a/src/serialize.c b/src/serialize.c
index e1a217085508c1bb19364a3c7a355c84d17867a3..e76a2d9fb9cb1a1a77ce686172cf6b17f8948c91 100644
--- a/src/serialize.c
+++ b/src/serialize.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <inttypes.h>
 #include <limits.h>
 #include <string.h>
diff --git a/src/servicelib.c b/src/servicelib.c
index c14a44232872655bc1a55cd8542a4943b8067fe1..92324932ef8b66956063cdff51febc17e06b8bfb 100644
--- a/src/servicelib.c
+++ b/src/servicelib.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
diff --git a/src/stream_scan.c b/src/stream_scan.c
index 05f94a182a68649fa7b88c464073bd7bcc6e0647..53f0a56e0bc9eaafd95574f42e91bd8563e5fb42 100644
--- a/src/stream_scan.c
+++ b/src/stream_scan.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include "dmemory.h"
 #include "stream_scan.h"
 
diff --git a/src/stream_var.c b/src/stream_var.c
index 87fc77fb1e5fa869875b1d340a19eee85b166944..d8ecaff1a95f8f99944e15be08e8172b9f1f695b 100644
--- a/src/stream_var.c
+++ b/src/stream_var.c
@@ -1,3 +1,16 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
+
 #include "dmemory.h"
 
 #include "cdi.h"
diff --git a/src/subtype.c b/src/subtype.c
index 7361771da8e296b391e52c8419c13f2c024769ba..d7a4ae8ec8b45d21dbe567189072846efd3db5eb 100644
--- a/src/subtype.c
+++ b/src/subtype.c
@@ -29,6 +29,18 @@
 /*                 .  |--- atts              [subtype_attr_t]          */
 /*                 .                                                   */
 
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include "cdi.h"
 #include "cdi_int.h"
 #include "dmemory.h"
diff --git a/src/swap.c b/src/swap.c
index 3abecb0a0b4f52b0e3292a873bbd3fde37b3b3ba..9c2a9d003d9717be5b83abc042986570e76b3ebc 100644
--- a/src/swap.c
+++ b/src/swap.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <inttypes.h>
 #include <stdio.h>
 
diff --git a/src/table.c b/src/table.c
index 538d9619116ffc136aa3e5cdf5ca634ed02226ee..f978bb1dd4a4ff76869cecf7ad56121b707a8a0f 100644
--- a/src/table.c
+++ b/src/table.c
@@ -1,5 +1,17 @@
-#include <stdlib.h>
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <stddef.h>
+#include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
 
diff --git a/src/taxis.c b/src/taxis.c
index 9b013281bb3a36a7c3f8173d46f8c3c91ae488e6..5f2108b565c221c9efbe8454ecf950d36d6152b9 100644
--- a/src/taxis.c
+++ b/src/taxis.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <stddef.h>
 #include <stdio.h>
 
diff --git a/src/tsteps.c b/src/tsteps.c
index e3d102a35cc7c2772c19e618725aee880ded77e7..2fa2f916c27ea0ca14b1f8061d9b4ba1995c615c 100644
--- a/src/tsteps.c
+++ b/src/tsteps.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <limits.h>
 
 #include "cdi.h"
diff --git a/src/vlist_var.c b/src/vlist_var.c
index bce417e7f27a10f66fe9a1ac537e3af51de2a68b..6af05ca289e081d26e0b85f2bd369aee2e55c57f 100644
--- a/src/vlist_var.c
+++ b/src/vlist_var.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <float.h> /* FLT_MAX */
 #include "dmemory.h"
 #include "cdi.h"
diff --git a/src/vlist_var_pack.c b/src/vlist_var_pack.c
index 5a877401d9ed8508f9a6127d90c08d26385fc8ef..b1e18a25a40abc26e34f5c9e34a945f2ca361a48 100644
--- a/src/vlist_var_pack.c
+++ b/src/vlist_var_pack.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include "dmemory.h"
 #include "cdi.h"
 #include "cdi_int.h"
diff --git a/src/zaxis.c b/src/zaxis.c
index 5f0a190e8601299854241ff3e10f9f88a92b040a..4d0e63844425d93308bf84d8dbcd4f6fbaed3aca 100644
--- a/src/zaxis.c
+++ b/src/zaxis.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <string.h>
 #include <math.h>
 #include <float.h>
diff --git a/tests/calendar_test1.c b/tests/calendar_test1.c
index 500a5c877456ef4b7be2053f80116f1a518847d1..cd69b3a862a3698d0650fe4504bde549080a7632 100644
--- a/tests/calendar_test1.c
+++ b/tests/calendar_test1.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <stdio.h>
 #include <stdlib.h>
 
diff --git a/tests/cksum_write_chunk.c b/tests/cksum_write_chunk.c
index bd8628c192c1233990e682e5bbd2d59dd00b5e01..44d1a593995753a32c8331fb3a6c131ceb7c5304 100644
--- a/tests/cksum_write_chunk.c
+++ b/tests/cksum_write_chunk.c
@@ -1,2 +1,14 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #define TEST_CHUNK_WRITE 1
 #include "cksum_write.c"
diff --git a/tests/test_byteswap.c b/tests/test_byteswap.c
index c0d22436dac5ab7b7f35c2fbf856f237637987e5..bf8c25638e0b8964c3e8034ef15e0b0f307dd194 100644
--- a/tests/test_byteswap.c
+++ b/tests/test_byteswap.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <assert.h>
 #include <stdlib.h>
 
diff --git a/tests/test_month_adjust.c b/tests/test_month_adjust.c
index 739e8106090c217166fd1c4f0928cd820227eb82..f50bbcb023c3d5083295e2578bee42244a83ee6c 100644
--- a/tests/test_month_adjust.c
+++ b/tests/test_month_adjust.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/time.h>
diff --git a/tests/test_table.c b/tests/test_table.c
index 71c6653e1caaa359caecaa65a2b90e69cc36a343..2b91a59a8b4ab0da5fb0fb6feab8260790fba78c 100644
--- a/tests/test_table.c
+++ b/tests/test_table.c
@@ -1,3 +1,15 @@
+/* DO NOT REMOVE the config.h include file under any circumstances,
+ * it's very much needed on some platforms */
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+/* DO NOT REMOVE the above config.h include file under any
+ * circumstances as long as it's the autoconf configuration header
+ * used to build this package. When it's missing on some platforms,
+ * some poor person has to do long, tedious debugging sessions, where
+ * struct offsets almost imperceptibly change from one file to the
+ * next to find out what happened */
+
 #include <assert.h>
 #include <stdlib.h>