diff --git a/devtools/c_bsd.licence b/devtools/c_bsd.licence
new file mode 100644
index 0000000000000000000000000000000000000000..c76db9fefbd43f1c40dd7869f3d19db6702693c7
--- /dev/null
+++ b/devtools/c_bsd.licence
@@ -0,0 +1,33 @@
+/*
+ * Copyright #YEAR# GRNET S.A. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above
+ *      copyright notice, this list of conditions and the following
+ *      disclaimer.
+ *   2. Redistributions in binary form must reproduce the above
+ *      copyright notice, this list of conditions and the following
+ *      disclaimer in the documentation and/or other materials
+ *      provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and
+ * documentation are those of the authors and should not be
+ * interpreted as representing official policies, either expressed
+ * or implied, of GRNET S.A.
+ */
diff --git a/devtools/c_gpl.licence b/devtools/c_gpl.licence
new file mode 100644
index 0000000000000000000000000000000000000000..96bb729411f49ba7554ea0e9f87ec59ff5b2dc52
--- /dev/null
+++ b/devtools/c_gpl.licence
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) #YEAR# GRNET S.A.
+ *
+ * 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+
diff --git a/devtools/check_licence.py b/devtools/check_licence.py
new file mode 100755
index 0000000000000000000000000000000000000000..b6724fe21d27cddea5e3a48011474283beab2737
--- /dev/null
+++ b/devtools/check_licence.py
@@ -0,0 +1,247 @@
+#!/usr/bin/env python
+
+# Copyright 2013 GRNET S.A. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or
+# without modification, are permitted provided that the following
+# conditions are met:
+#
+#   1. Redistributions of source code must retain the above
+#      copyright notice, this list of conditions and the following
+#      disclaimer.
+#
+#   2. Redistributions in binary form must reproduce the above
+#      copyright notice, this list of conditions and the following
+#      disclaimer in the documentation and/or other materials
+#      provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and
+# documentation are those of the authors and should not be
+# interpreted as representing official policies, either expressed
+# or implied, of GRNET S.A.
+
+
+import os, sys, shutil
+
+EXCLUDE_FILENAMES = ['.gitignore', 'README', 'version', 'c_bsd.licence',
+                     'python_bsd.licence', 'devflow.conf', 'verify',
+                     'create', 'detach', 'attach', 'parameters.list', 'grow',
+                     'remove', 'python_gpl.licence', 'c_gpl.licence', 'tags',
+                     'config.env', 'distribute_setup.py']
+GPL_FILES = ['vlmc_wrapper.py', 'kernel/xseg_posix.c', 'kernel/xseg_pthread.c',
+             'xsegbd.c']
+EXCLUDE_DIRECTORIES = ['.git', 'doc']
+VALID_YEARS = [2011, 2012, 2013]
+CUR_YEAR = 2013
+PYTHON_INTERPRETER = "#!/usr/bin/env python\n"
+BASH_INTERPRETER = "#!/bin/bash\n"
+THIS_PATH = os.path.dirname(os.path.realpath(__file__))
+PYTHON_BSD_LICENCE = open(os.path.join(THIS_PATH, "python_bsd.licence")).readlines()
+PYTHON_GPL_LICENCE = open(os.path.join(THIS_PATH, "python_gpl.licence")).readlines()
+C_BSD_LICENCE = open(os.path.join(THIS_PATH, "c_bsd.licence")).readlines()
+C_GPL_LICENCE = open(os.path.join(THIS_PATH, "c_gpl.licence")).readlines()
+
+
+class InvalidTypeException(Exception):
+    """Exception to raise for invalid type"""
+    pass
+
+class LicenceException(Exception):
+    """Exception to raise for licence exception"""
+    pass
+
+class ExcludedFileException(Exception):
+    """Exception to raise for excluded file"""
+    pass
+
+class EmptyFileException(Exception):
+    """Exception to raise for empty file"""
+    pass
+
+class PartialLicenceException(Exception):
+    """exception to raise for partial licence"""
+    pass
+
+class NoLicenceException(Exception):
+    """Exception to raise for no licence"""
+    pass
+
+class NoInterpreterException(Exception):
+    """Esception to raise when no interpreter found"""
+    pass
+
+
+def get_file_type(filename):
+    """Return a string with the type of the file"""
+    for excl_file in EXCLUDE_FILENAMES:
+        if filename.endswith(excl_file):
+            raise ExcludedFileException(filename)
+
+    if filename.endswith('.c') or filename.endswith('.h'):
+        return 'c'
+    elif filename.endswith('.sh'):
+        return 'bash'
+    elif filename.endswith('.py'):
+        return 'python'
+    elif filename.endswith('Makefile') or filename.endswith('.mk'):
+        return 'makefile'
+
+    firstline = open(filename).readline()
+    if firstline == BASH_INTERPRETER:
+        return 'bash'
+    if firstline == PYTHON_INTERPRETER:
+        return 'python'
+
+    raise InvalidTypeException(file)
+
+
+def __check_licence(filename, licence, year_line, interpreter = None):
+    """Generic test licence function"""
+    fil = open(filename)
+    line = fil.readline()
+    if line == "":
+        raise EmptyFileException("Empty file")
+
+    if interpreter:
+        if line == interpreter:
+            line = fil.readline()
+            if line != "\n":
+                raise Exception("Blank line is expected after %s",
+                        interpreter)
+            line = fil.readline()
+#        else:
+#            raise NoInterpreterException("No interpreter found")
+
+    if line == "":
+        raise EmptyFileException("Empty file")
+
+    if year_line > 0:
+        for i in range(0, year_line):
+            if line != licence[i]:
+                raise NoLicenceException("No licence")
+            line = fil.readline()
+    found = False
+    for valid_year in VALID_YEARS:
+        licence_line = licence[year_line].replace("#YEAR#", str(valid_year))
+        if line == licence_line:
+            found = True
+            break
+    if not found:
+        raise NoLicenceException("No licence")
+    line = fil.readline()
+    for licence_line in licence[year_line + 1:]:
+        if licence_line != line:
+            print "   Found: " + line
+            print "Expected: " + licence_line
+            raise PartialLicenceException("Partial licence found")
+        line = fil.readline()
+
+
+def __check_licence2(filename, licence, year_line, interpreter = None,
+                     insert = False):
+    """Generic test or insert licence function"""
+    try:
+        __check_licence(filename, licence, year_line, interpreter)
+    except NoLicenceException:
+        if insert:
+            fil = open(filename)
+            new_filename = filename + '.tmp'
+            new_fil = open(new_filename, 'w')
+            line = fil.readline()
+            if interpreter:
+                if line == interpreter:
+                    new_fil.write(line)
+                    line = fil.readline()
+                    new_fil.write(line) #mustbe "" otherwise Blankline exception
+                    line = fil.readline()
+            if year_line > 0:
+                for i in range(0, year_line):
+                    new_fil.write(licence[i])
+            new_fil.write(licence[year_line].replace("#YEAR#", str(CUR_YEAR)))
+            for licence_line in licence[year_line+1:]:
+                new_fil.write(licence_line)
+            new_fil.write("\n")
+            while line != "":
+                new_fil.write(line)
+                line = fil.readline()
+            os.remove(filename)
+            shutil.move(new_filename, filename)
+
+        else:
+            raise NoLicenceException("No licence")
+
+
+
+def check_licence_python(filename, insert = False):
+    """Check or insert licence in python files"""
+    licence = PYTHON_BSD_LICENCE
+    for gplfile in GPL_FILES:
+        if filename.endswith(gplfile):
+            licence = PYTHON_GPL_LICENCE
+    __check_licence2(filename, licence, 0, PYTHON_INTERPRETER, insert)
+
+
+def check_licence_bash(filename, insert = False):
+    """Check or insert licence for bash files"""
+    __check_licence2(filename, PYTHON_BSD_LICENCE, 0, BASH_INTERPRETER, insert)
+
+
+def check_licence_makefile(filename, insert = False):
+    """Check or insert licence for makefiles files"""
+    __check_licence2(filename, PYTHON_BSD_LICENCE, 0, insert = insert)
+
+
+def check_licence_c(filename, insert = False):
+    """Check or insert licence for c files"""
+    licence = C_BSD_LICENCE
+    for gplfile in GPL_FILES:
+        if filename.endswith(gplfile):
+            licence = C_GPL_LICENCE
+
+    __check_licence2(filename, licence, 1, insert = insert)
+
+
+if __name__ == "__main__":
+    try:
+        root_dir = sys.argv[1]
+    except:
+        print "Usage: %s path [--insert]" % sys.argv[0]
+        exit(1)
+    try:
+        do_insert = sys.argv[2] == '--insert'
+    except:
+        do_insert = False
+
+    for directory, subdirectories, files in os.walk(root_dir):
+        for ed in EXCLUDE_DIRECTORIES:
+            if ed in subdirectories:
+                subdirectories.remove(ed)
+        for filen in files:
+            full_path = os.path.join(directory, filen)
+            try:
+                ft = get_file_type(full_path)
+                {
+                'c': check_licence_c,
+                'python': check_licence_python,
+                'bash': check_licence_bash,
+                'makefile': check_licence_makefile
+                }[ft](full_path, do_insert)
+            except ExcludedFileException:
+                pass
+            except InvalidTypeException:
+                print "Invalid type: ", full_path
+            except Exception as e:
+                print e, " ", full_path
diff --git a/devtools/python_bsd.licence b/devtools/python_bsd.licence
new file mode 100644
index 0000000000000000000000000000000000000000..722b5961580462b7cf835482b6cdef3ee6d3e757
--- /dev/null
+++ b/devtools/python_bsd.licence
@@ -0,0 +1,32 @@
+# Copyright #YEAR# GRNET S.A. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or
+# without modification, are permitted provided that the following
+# conditions are met:
+#
+#   1. Redistributions of source code must retain the above
+#      copyright notice, this list of conditions and the following
+#      disclaimer.
+#
+#   2. Redistributions in binary form must reproduce the above
+#      copyright notice, this list of conditions and the following
+#      disclaimer in the documentation and/or other materials
+#      provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and
+# documentation are those of the authors and should not be
+# interpreted as representing official policies, either expressed
+# or implied, of GRNET S.A.
diff --git a/devtools/python_gpl.licence b/devtools/python_gpl.licence
new file mode 100644
index 0000000000000000000000000000000000000000..1d3d5a1cfba780902f3e7fc57f7304c8b0c2b9dc
--- /dev/null
+++ b/devtools/python_gpl.licence
@@ -0,0 +1,16 @@
+# Copyright (C) #YEAR# Greek Research and Technology Network
+#
+# 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
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.