diff --git a/Gruntfile.js b/Gruntfile.js
index af74d0e..830a0eb 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -14,26 +14,48 @@
  * TODO: Implement a LaTeX generator for a pdf of the dokumentation 
  */
 
-// Generate requireJS files for l10n
-var reqTasks = [];
-for (var i in {'en' : 0, 'de' : 1}) {
-  reqTasks.push({
-    options: {
-      // optimize: "uglify",
-      baseUrl: 'dev/js/src',
-      paths : {
-	      'lib': '../lib'
-      },
-      wrap:true,
-      // dir : 'public/js',
-      name: 'lib/almond',
-      include : ['app/' + i],
-      out: 'public/js/kalamar-<%= pkg.version %>-' + i + '.js'
-    }
-  })
-};
-
 module.exports = function(grunt) {
+
+  var config;
+
+  try {
+    config = grunt.file.readJSON('kalamar.conf.json');
+  }
+  catch(err) {
+    console.log("Error: " + err);
+    config = {};
+  };
+
+  if (config["include"] === undefined) {
+    config["include"] = [
+      'hint/foundries/base',
+      'hint/foundries/dereko'
+    ];
+  };
+
+  // Generate requireJS files for l10n
+  var reqTasks = [];
+  for (var i in {'en' : 0, 'de' : 1}) {
+
+    var includeFiles = config["include"].slice();
+    includeFiles.push('app/' + i);
+
+    reqTasks.push({
+      options: {
+        // optimize: "uglify",
+        baseUrl: 'dev/js/src',
+        paths : {
+	        'lib': '../lib'
+        },
+        wrap:true,
+        // dir : 'public/js',
+        name: 'lib/almond',
+        include : includeFiles,
+        out: 'public/js/kalamar-<%= pkg.version %>-' + i + '.js'
+      }
+    })
+  };
+
   grunt.initConfig({
     pkg: grunt.file.readJSON('package.json'),
     requirejs: reqTasks,
