diff --git a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java
@@ -243,6 +243,7 @@
       // a module is returned for each module dependency, take care of this in
       // the for-loop below
       final OBCriteria<Module> modules = OBDal.getInstance().createCriteria(Module.class);
+      modules.addOrderBy(Module.PROPERTY_ID, true);
       modules.setFetchMode(Module.PROPERTY_MODULEDEPENDENCYLIST, FetchMode.JOIN);
       final List<Module> handledModules = new ArrayList<Module>();
       try {
@@ -284,6 +285,7 @@
       for (ModuleWithLowLevelCode moduleLowLevelCode : moduleLowLevelCodes) {
         result.add(moduleLowLevelCode.getModule());
       }
+      System.out.println(result);
       sortedModules = result;
       return result;
     } finally {
