diff --git a/src/main/java/org/olat/core/util/mail/MailBoxExtension.java b/src/main/java/org/olat/core/util/mail/MailBoxExtension.java
index 2d0f3570d4ee7fcf03beb596d6da3f771cfc055d..6a52abb54e8da16fbd9798fcc5c4292f103690a6 100644
--- a/src/main/java/org/olat/core/util/mail/MailBoxExtension.java
+++ b/src/main/java/org/olat/core/util/mail/MailBoxExtension.java
@@ -127,7 +127,7 @@ public class MailBoxExtension extends BasicManager implements MailContextResolve
 			mailManager.delete(inMail, identity, true);
 		}
 
-		Collection<DBMailLight> outbox = new HashSet<DBMailLight>(mailManager.getOutbox(identity, 0, 0));
+		Collection<DBMailLight> outbox = new HashSet<DBMailLight>(mailManager.getOutbox(identity, 0, 0, false));
 		for(DBMailLight outMail:outbox) {
 			mailManager.delete(outMail, identity, true);
 		}
diff --git a/src/main/java/org/olat/core/util/mail/manager/MailManager.java b/src/main/java/org/olat/core/util/mail/manager/MailManager.java
index e67bea37764d90bbdb64a8a3ef975444039ea498..c8628f7e6f108a65df94911d6c0385c40c1bdc4e 100644
--- a/src/main/java/org/olat/core/util/mail/manager/MailManager.java
+++ b/src/main/java/org/olat/core/util/mail/manager/MailManager.java
@@ -467,13 +467,13 @@ public class MailManager extends BasicManager {
 	 * @param maxResults
 	 * @return
 	 */
-	public List<DBMailLight> getOutbox(Identity from, int firstResult, int maxResults) {
+	public List<DBMailLight> getOutbox(Identity from, int firstResult, int maxResults, boolean fetchRecipients) {
 		StringBuilder sb = new StringBuilder();
 		sb.append("select distinct(mail) from ").append(DBMailLightImpl.class.getName()).append(" mail")
 			.append(" inner join fetch mail.from fromRecipient")
 			.append(" inner join fromRecipient.recipient fromRecipientIdentity")
-			.append(" inner join mail.recipients recipient")
-			.append(" inner join recipient.recipient recipientIdentity")
+			.append(" inner join ").append(fetchRecipients ? "fetch" : "").append(" mail.recipients recipient")
+			.append(" inner join ").append(fetchRecipients ? "fetch" : "").append(" recipient.recipient recipientIdentity")
 			.append(" where fromRecipientIdentity.key=:fromKey and fromRecipient.deleted=false and recipientIdentity.key!=:fromKey")
 			.append(" order by mail.creationDate desc");
 
diff --git a/src/main/java/org/olat/core/util/mail/ui/MailListController.java b/src/main/java/org/olat/core/util/mail/ui/MailListController.java
index c06efac08488c60da86716811b1be5788e1abd72..6a0ffb38abb43ac5348913812f834ac49775e260 100644
--- a/src/main/java/org/olat/core/util/mail/ui/MailListController.java
+++ b/src/main/java/org/olat/core/util/mail/ui/MailListController.java
@@ -233,7 +233,7 @@ public class MailListController extends BasicController implements Activateable2
 			if(StringHelper.containsNonWhitespace(metaId)) {
 				mails = MailManager.getInstance().getEmailsByMetaId(metaId);
 			} else {
-				mails = MailManager.getInstance().getOutbox(getIdentity(), 0, -1);
+				mails = MailManager.getInstance().getOutbox(getIdentity(), 0, -1, true);
 			}
 			
 			//strip meta emails
diff --git a/src/test/java/org/olat/core/util/mail/manager/MailManagerTest.java b/src/test/java/org/olat/core/util/mail/manager/MailManagerTest.java
index 742b9bf156ae8d6afdb1eda5ac4f4519c4f31db4..f2865454100467786c560f08130ce46e050c36a5 100644
--- a/src/test/java/org/olat/core/util/mail/manager/MailManagerTest.java
+++ b/src/test/java/org/olat/core/util/mail/manager/MailManagerTest.java
@@ -115,14 +115,21 @@ public class MailManagerTest extends OlatTestCase {
 		Assert.assertEquals(MailerResult.OK, result.getReturnCode());
 		dbInstance.commitAndCloseSession();
 		
-		//retrieve the inbox of toId
-		List<DBMailLight> sendedMails = mailManager.getOutbox(fromId, 0, -1);
+		//retrieve the outbox of toId (with lazy loading)
+		List<DBMailLight> sendedMails = mailManager.getOutbox(fromId, 0, -1, false);
 		Assert.assertNotNull(sendedMails);
 		Assert.assertEquals(1, sendedMails.size());
 		
 		DBMailLight sendedMail = sendedMails.get(0);
 		Assert.assertNotNull(sendedMail);
 		Assert.assertEquals("Hello outbox", sendedMail.getSubject());
+		
+		dbInstance.commitAndCloseSession();
+		
+		//retrieve the outbox of toId (with fetch)
+		List<DBMailLight> sendedMailsWithFetch = mailManager.getOutbox(fromId, 0, -1, true);
+		Assert.assertNotNull(sendedMailsWithFetch);
+		Assert.assertEquals(1, sendedMailsWithFetch.size());
 	}
 	
 	@Test
@@ -225,7 +232,7 @@ public class MailManagerTest extends OlatTestCase {
 		List<DBMailLight> deletedMails_3 = mailManager.getInbox(toId_3, null, null, null, 0, -1);
 		Assert.assertNotNull(deletedMails_3);
 		Assert.assertTrue(deletedMails_3.isEmpty());
-		List<DBMailLight> deletedMails_4 = mailManager.getOutbox(fromId, 0, -1);
+		List<DBMailLight> deletedMails_4 = mailManager.getOutbox(fromId, 0, -1, true);
 		Assert.assertNotNull(deletedMails_4);
 		Assert.assertTrue(deletedMails_4.isEmpty());
 		//check mail by meta id