diff --git a/miosix/_doc/textdoc/Changelog.txt b/miosix/_doc/textdoc/Changelog.txt
index 5a89dfb924973ea39f0f0825744117314b749279..6d8ed1640f1100494dc95d42226b80df24c9b153 100644
--- a/miosix/_doc/textdoc/Changelog.txt
+++ b/miosix/_doc/textdoc/Changelog.txt
@@ -1,5 +1,7 @@
 Changelog for Miosix np embedded OS
 
+- Added versioning to miosix_settings.h and board_settings.h to prevent
+  misconfiguration when those files are updated.
 - Moved board_settings.h in the config directory to allow out of git tree
   projects to tweak those files without editing files in the Miosix git repo.
 - Added miosix/_tools/init_project_out_of_git_tree.pl script to help set up
diff --git a/miosix/config/arch/arm7_lpc2000/lpc2138_miosix_board/board_settings.h b/miosix/config/arch/arm7_lpc2000/lpc2138_miosix_board/board_settings.h
index 5d2afdbc0a6faa243d6d9080440d6ed2fa3ba876..b870be9d7ce712484c82d1f17f1942aa20322f2d 100644
--- a/miosix/config/arch/arm7_lpc2000/lpc2138_miosix_board/board_settings.h
+++ b/miosix/config/arch/arm7_lpc2000/lpc2138_miosix_board/board_settings.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2010 by Terraneo Federico                               *
+ *   Copyright (C) 2010, 2011, 2012, 2013, 2014 by Terraneo Federico       *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/arch/cortexM3_stm32/stm32f100rb_stm32vldiscovery/board_settings.h b/miosix/config/arch/cortexM3_stm32/stm32f100rb_stm32vldiscovery/board_settings.h
index 61b0cf3a1afb84b8ee409a1a06ec0a2a0b95b789..24e451e34d6120a997775004091cbd68ef171899 100644
--- a/miosix/config/arch/cortexM3_stm32/stm32f100rb_stm32vldiscovery/board_settings.h
+++ b/miosix/config/arch/cortexM3_stm32/stm32f100rb_stm32vldiscovery/board_settings.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2011 by Terraneo Federico                               *
+ *   Copyright (C) 2011, 2012, 2013, 2014 by Terraneo Federico             *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/arch/cortexM3_stm32/stm32f103ve_mp3v2/board_settings.h b/miosix/config/arch/cortexM3_stm32/stm32f103ve_mp3v2/board_settings.h
index fdfc344c39bdf6905741d5828ae1daf6c6e6a1c9..0281e7220d73a487c77b24c7b675c0917d6f0ef7 100644
--- a/miosix/config/arch/cortexM3_stm32/stm32f103ve_mp3v2/board_settings.h
+++ b/miosix/config/arch/cortexM3_stm32/stm32f103ve_mp3v2/board_settings.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2011 by Terraneo Federico                               *
+ *   Copyright (C) 2011, 2012, 2013, 2014 by Terraneo Federico             *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/arch/cortexM3_stm32/stm32f103ve_strive_mini/board_settings.h b/miosix/config/arch/cortexM3_stm32/stm32f103ve_strive_mini/board_settings.h
index fdfc344c39bdf6905741d5828ae1daf6c6e6a1c9..0281e7220d73a487c77b24c7b675c0917d6f0ef7 100644
--- a/miosix/config/arch/cortexM3_stm32/stm32f103ve_strive_mini/board_settings.h
+++ b/miosix/config/arch/cortexM3_stm32/stm32f103ve_strive_mini/board_settings.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2011 by Terraneo Federico                               *
+ *   Copyright (C) 2011, 2012, 2013, 2014 by Terraneo Federico             *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/arch/cortexM3_stm32/stm32f103ze_redbull_v2/board_settings.h b/miosix/config/arch/cortexM3_stm32/stm32f103ze_redbull_v2/board_settings.h
index 149922b7bf10a03436dc5bf1bf6f866cfa06e574..766ee972a63eaf976d1b28f9c6445c77e02b2c5f 100644
--- a/miosix/config/arch/cortexM3_stm32/stm32f103ze_redbull_v2/board_settings.h
+++ b/miosix/config/arch/cortexM3_stm32/stm32f103ze_redbull_v2/board_settings.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2011 by Terraneo Federico                               *
+ *   Copyright (C) 2011, 2012, 2013, 2014 by Terraneo Federico             *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/arch/cortexM3_stm32/stm32f103ze_stm3210e-eval/board_settings.h b/miosix/config/arch/cortexM3_stm32/stm32f103ze_stm3210e-eval/board_settings.h
index ba50be4a3f5a1fd840f29f062dea69e16d2010c9..b90c72a246f2c460737a67ce1acf0afabb6042d2 100644
--- a/miosix/config/arch/cortexM3_stm32/stm32f103ze_stm3210e-eval/board_settings.h
+++ b/miosix/config/arch/cortexM3_stm32/stm32f103ze_stm3210e-eval/board_settings.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2010 by Terraneo Federico                               *
+ *   Copyright (C) 2010, 2011, 2012, 2013, 2014 by Terraneo Federico       *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/arch/cortexM3_stm32f2/stm32f205rg_sony-newman/board_settings.h b/miosix/config/arch/cortexM3_stm32f2/stm32f205rg_sony-newman/board_settings.h
index d97f651c8eac11b0540406e8261f2d4bb80c9e14..84d3a9c9d577b7eccc2a40aac2933b8a22615e24 100644
--- a/miosix/config/arch/cortexM3_stm32f2/stm32f205rg_sony-newman/board_settings.h
+++ b/miosix/config/arch/cortexM3_stm32f2/stm32f205rg_sony-newman/board_settings.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2013 by Terraneo Federico                               *
+ *   Copyright (C) 2013, 2014 by Terraneo Federico                         *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/arch/cortexM3_stm32f2/stm32f207ig_stm3220g-eval/board_settings.h b/miosix/config/arch/cortexM3_stm32f2/stm32f207ig_stm3220g-eval/board_settings.h
index 076220d72102b098fca988bb0cfd3e19d9f9aaa0..287a512ef473505c1f12f86a34128b0240530a38 100644
--- a/miosix/config/arch/cortexM3_stm32f2/stm32f207ig_stm3220g-eval/board_settings.h
+++ b/miosix/config/arch/cortexM3_stm32f2/stm32f207ig_stm3220g-eval/board_settings.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2012 by Terraneo Federico                               *
+ *   Copyright (C) 2012, 2013, 2014 by Terraneo Federico                   *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/arch/cortexM3_stm32f2/stm32f207ze_als_camboard/board_settings.h b/miosix/config/arch/cortexM3_stm32f2/stm32f207ze_als_camboard/board_settings.h
index 8d1088ba64f5b2ba1e4898ba590a1d88bd8ada20..67e9767618ef4296a8c880837bf587d2a801189e 100644
--- a/miosix/config/arch/cortexM3_stm32f2/stm32f207ze_als_camboard/board_settings.h
+++ b/miosix/config/arch/cortexM3_stm32f2/stm32f207ze_als_camboard/board_settings.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2012 by Terraneo Federico                               *
+ *   Copyright (C) 2012, 2013, 2014 by Terraneo Federico                   *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/arch/cortexM3_stm32f2/stm32f207zg_EthBoardV2/board_settings.h b/miosix/config/arch/cortexM3_stm32f2/stm32f207zg_EthBoardV2/board_settings.h
index a7a1512aa91d47115a997142dd5167a2515a3243..d40698f833c2117096cbc39b563938199d88ce7c 100644
--- a/miosix/config/arch/cortexM3_stm32f2/stm32f207zg_EthBoardV2/board_settings.h
+++ b/miosix/config/arch/cortexM3_stm32f2/stm32f207zg_EthBoardV2/board_settings.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2012 by Terraneo Federico                               *
+ *   Copyright (C) 2012, 2013, 2014 by Terraneo Federico                   *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/arch/cortexM3_stm32l1/stm32l151c8_als_mainboard/board_settings.h b/miosix/config/arch/cortexM3_stm32l1/stm32l151c8_als_mainboard/board_settings.h
index f2e7a54f3177d91153d2c5e545e88aa99c1fe7e1..0af59606705ce0de50ce8d8b739428281728d536 100644
--- a/miosix/config/arch/cortexM3_stm32l1/stm32l151c8_als_mainboard/board_settings.h
+++ b/miosix/config/arch/cortexM3_stm32l1/stm32l151c8_als_mainboard/board_settings.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2012 by Terraneo Federico                               *
+ *   Copyright (C) 2012, 2013, 2014 by Terraneo Federico                   *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/arch/cortexM4_stm32f4/stm32f407vg_bitsboard/board_settings.h b/miosix/config/arch/cortexM4_stm32f4/stm32f407vg_bitsboard/board_settings.h
index ddccb9668100ca69aecae7d915ef0723fa12ac47..a74f82dd368c0c752d8b19468a95911db17837f4 100644
--- a/miosix/config/arch/cortexM4_stm32f4/stm32f407vg_bitsboard/board_settings.h
+++ b/miosix/config/arch/cortexM4_stm32f4/stm32f407vg_bitsboard/board_settings.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2012 by Terraneo Federico                               *
+ *   Copyright (C) 2012, 2013, 2014 by Terraneo Federico                   *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/arch/cortexM4_stm32f4/stm32f407vg_stm32f4discovery/board_settings.h b/miosix/config/arch/cortexM4_stm32f4/stm32f407vg_stm32f4discovery/board_settings.h
index ddccb9668100ca69aecae7d915ef0723fa12ac47..a74f82dd368c0c752d8b19468a95911db17837f4 100644
--- a/miosix/config/arch/cortexM4_stm32f4/stm32f407vg_stm32f4discovery/board_settings.h
+++ b/miosix/config/arch/cortexM4_stm32f4/stm32f407vg_stm32f4discovery/board_settings.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2012 by Terraneo Federico                               *
+ *   Copyright (C) 2012, 2013, 2014 by Terraneo Federico                   *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/arch/cortexM4_stm32f4/stm32f429zi_stm32f4discovery/board_settings.h b/miosix/config/arch/cortexM4_stm32f4/stm32f429zi_stm32f4discovery/board_settings.h
index ac70a6db86c7a4d02086eba83c26ac9da17584d1..8295e783f8a6d3376e4ec87919d4ec52e14faeb8 100644
--- a/miosix/config/arch/cortexM4_stm32f4/stm32f429zi_stm32f4discovery/board_settings.h
+++ b/miosix/config/arch/cortexM4_stm32f4/stm32f429zi_stm32f4discovery/board_settings.h
@@ -28,6 +28,12 @@
 #ifndef BOARD_SETTINGS_H
 #define	BOARD_SETTINGS_H
 
+#include "util/version.h"
+
+#if BOARD_SETTINGS_VERSION != 100
+#error You need to update board_settings.h to match the version in the kernel.
+#endif
+
 namespace miosix {
 
 /**
diff --git a/miosix/config/miosix_settings.h b/miosix/config/miosix_settings.h
index 3ea473331d528c4499fcc3468438488a88ef4ed9..a73f5c00a6a8b2225ccf39765962760e1dbe1e05 100644
--- a/miosix/config/miosix_settings.h
+++ b/miosix/config/miosix_settings.h
@@ -1,5 +1,6 @@
 /***************************************************************************
- *   Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013 by Terraneo Federico *
+ *   Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014                *
+ *   by Terraneo Federico                                                  *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -42,6 +43,11 @@
  */
 #include "arch_settings.h"
 #include "board_settings.h"
+#include "util/version.h"
+
+#if SETTINGS_VERSION != 100
+#error You need to update miosix_settings.h to match the version in the kernel.
+#endif
 
 namespace miosix {
 
diff --git a/miosix/util/version.cpp b/miosix/util/version.cpp
index 05252432f40018599d8793b487cc1a664152a305..2c00860743a1ef59fb919b02d61fa3405a396606 100644
--- a/miosix/util/version.cpp
+++ b/miosix/util/version.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2010, 2011, 2012 by Terraneo Federico                   *
+ *   Copyright (C) 2010, 2011, 2012, 2013, 2014 by Terraneo Federico       *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
diff --git a/miosix/util/version.h b/miosix/util/version.h
index 1dbd44415e7028d63a849ef76e2b8156f9d0f952..c05ae6463a68ae336c28c450492bf389d20c3672 100644
--- a/miosix/util/version.h
+++ b/miosix/util/version.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2010, 2011 by Terraneo Federico                         *
+ *   Copyright (C) 2010, 2011, 2012, 2013, 2014 by Terraneo Federico       *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -39,10 +39,10 @@ namespace miosix {
  * Allows to know the version of the kernel at runtime.
  * \return a string with the kernel version.
  * The format is "Miosix vX.XX (board, builddate, compiler)" where
- * vX.XX is the kernel version number, like "v1.59"
+ * vX.XX is the kernel version number, like "v2.0"
  * board is the board name, like "stm32f103ze_stm3210e-eval"
  * builddate is the date the kernel was built, like "Oct 30 2011 00:58:10"
- * compiler is the compiler version, like "gcc 4.5.2"
+ * compiler is the compiler version, like "gcc 4.7.3"
  */
 const char *getMiosixVersion();
 
@@ -52,4 +52,16 @@ const char *getMiosixVersion();
 
 } //namespace miosix
 
+/**
+ * \internal
+ * Versioning for miosix_settings.h for out of git tree projects
+ */
+#define SETTINGS_VERSION 100
+
+/**
+ * \internal
+ * Versioning for board_settings.h for out of git tree projects
+ */
+#define BOARD_SETTINGS_VERSION 100
+
 #endif	/* VERSION_H */