diff --git a/lib/modules/Concurrent.pmod b/lib/modules/Concurrent.pmod
index 0a67b52e37645edbfcc5e1f25acba080ca039d88..b924e614ba18ac855e8c99c466d3e30f5ae1fe2a 100644
--- a/lib/modules/Concurrent.pmod
+++ b/lib/modules/Concurrent.pmod
@@ -1059,6 +1059,9 @@ variant inline Future race(Future ... futures)
 //!   @[all()], @[Promise.depend()]
 variant Future results(array(Future) futures)
 {
+  if(!sizeof(futures))
+    return resolve(({}));
+
   return Promise()->depend(futures)->future();
 }
 inline variant Future results(Future ... futures)
diff --git a/lib/modules/testsuite.in b/lib/modules/testsuite.in
index 9c1566bcde6947835234ad7e896071343443b369..891cafbcc9f2d058145077842eaa5c789c1452be 100644
--- a/lib/modules/testsuite.in
+++ b/lib/modules/testsuite.in
@@ -379,6 +379,12 @@ test_do([[ add_constant("p12"); ]])
 test_do([[ add_constant("p13"); ]])
 exit_promise(1, ({11, 14, 12, 13}))
 
+dnl - Concurrent.results() - empty
+init_promise()
+test_do([[ add_constant("future", Concurrent.results(({}))); ]])
+init_future()
+exit_promise(1, ({}))
+
 dnl - Concurrent.traverse()
 init_promise()
 test_do([[ add_constant("p11", Concurrent.Promise()); ]])