diff --git a/product/CMFActivity/Activity/SQLBase.py b/product/CMFActivity/Activity/SQLBase.py
index f7fc7f42b1efbcac439314a9fb2bbd311ce057ca..0c4c68bfbf0cedddfbbd4c661afef8d67e21395d 100644
--- a/product/CMFActivity/Activity/SQLBase.py
+++ b/product/CMFActivity/Activity/SQLBase.py
@@ -132,11 +132,10 @@ class SQLBase(Queue):
 
   def _getPriority(self, activity_tool, method, default):
     result = method()
-    assert len(result) == 1
-    priority = result[0]['priority']
-    if priority is None:
-      priority = default
-    return priority
+    if not result:
+      return default
+    assert len(result) == 1, len(result)
+    return result[0]['priority']
 
   def _retryOnLockError(self, method, args=(), kw={}):
     while True:
diff --git a/product/CMFActivity/skins/activity/SQLDict_getPriority.zsql b/product/CMFActivity/skins/activity/SQLDict_getPriority.zsql
index 1a55ac7c7d4940b7cd5df9e9ebdccd04429108e8..aac6f88b99278b8373cf350a4dc7d240fad5e5fd 100644
--- a/product/CMFActivity/skins/activity/SQLDict_getPriority.zsql
+++ b/product/CMFActivity/skins/activity/SQLDict_getPriority.zsql
@@ -9,9 +9,10 @@ class_file:
 </dtml-comment>
 <params>
 </params>
-SELECT MIN(`priority`) AS `priority` FROM
+SELECT `priority` FROM
   message
 WHERE
   processing_node = 0
   AND date <= UTC_TIMESTAMP()
-
+ORDER BY priority
+LIMIT 1
diff --git a/product/CMFActivity/skins/activity/SQLQueue_getPriority.zsql b/product/CMFActivity/skins/activity/SQLQueue_getPriority.zsql
index 57d8ebeafc5e3cde654a87bd54bc017b48057b5c..fd251bcfe48d1b4ef0c31fa288b85e866bbee8bd 100644
--- a/product/CMFActivity/skins/activity/SQLQueue_getPriority.zsql
+++ b/product/CMFActivity/skins/activity/SQLQueue_getPriority.zsql
@@ -9,9 +9,10 @@ class_file:
 </dtml-comment>
 <params>
 </params>
-SELECT MIN(`priority`) AS `priority` FROM
+SELECT `priority` FROM
   message_queue
 WHERE
   processing_node = 0
   AND date <= UTC_TIMESTAMP()
-
+ORDER BY priority
+LIMIT 1