diff --git a/generator/analysis/SystemGraph.py b/generator/analysis/SystemGraph.py
index e3084801589296943d91f86a4d7603c60710c4fa..86ac7b3c33438cee9c425ce83e7252812d07a33c 100644
--- a/generator/analysis/SystemGraph.py
+++ b/generator/analysis/SystemGraph.py
@@ -74,7 +74,7 @@ class SystemGraph(GraphObject, PassManager):
 
     @property
     def subtasks(self):
-        return self._subtasks.values()
+        return list(sorted(self._subtasks.values(), key=lambda x: x.name))
 
     @property
     def user_subtasks(self):
diff --git a/generator/coder/syscall_full.py b/generator/coder/syscall_full.py
index 6fd2d860abdd3da1ab31dfaab8837f6ba7020692..41899a049f1775a0f2a9530acec647f9859c48aa 100644
--- a/generator/coder/syscall_full.py
+++ b/generator/coder/syscall_full.py
@@ -5,6 +5,8 @@ from .elements import Statement, Comment, Function, VariableDefinition, Block, I
     CodeTemplate, FunctionDeclaration
 from generator.transform.GenerateAssertions import AssertionType
 from generator.analysis.Function import Function as GraphFunction
+from generator.analysis.Resource import Resource
+
 from generator.tools import panic
 
 
@@ -258,6 +260,8 @@ class FullSystemCalls(BaseCoder):
 
     def ReleaseResource(self, abb, userspace, kernelspace):
         next_prio = abb.definite_after(E.task_level).dynamic_priority
+        if not abb.subtask.conf.preemptable:
+            next_prio = self.system_graph.get(Resource, "RES_SCHEDULER").conf.static_priority
         self.call(kernelspace,
                            "scheduler_.ReleaseResource_impl",
                            "void",