Index: /trunk/roundcubemail/program/include/rcube_session.php
===================================================================
--- /trunk/roundcubemail/program/include/rcube_session.php	(revision 5402)
+++ /trunk/roundcubemail/program/include/rcube_session.php	(revision 5403)
@@ -391,4 +391,16 @@
     $this->destroy(session_id());
     rcmail::setcookie($this->cookiename, '-del-', time() - 60);
+  }
+
+
+  /**
+   * Re-read session data from storage backend
+   */
+  public function reload()
+  {
+    if ($this->key && $this->memcache)
+      $this->mc_read($this->key);
+    else if ($this->key)
+      $this->db_read($this->key);
   }
 
Index: /trunk/roundcubemail/program/steps/mail/compose.inc
===================================================================
--- /trunk/roundcubemail/program/steps/mail/compose.inc	(revision 5402)
+++ /trunk/roundcubemail/program/steps/mail/compose.inc	(revision 5403)
@@ -31,4 +31,12 @@
 $COMPOSE_ID = get_input_value('_id', RCUBE_INPUT_GET);
 $_SESSION['compose'] = $_SESSION['compose_data_'.$COMPOSE_ID];
+
+// give replicated session storage some time to synchronize
+$retries = 0;
+while ($COMPOSE_ID && !is_array($_SESSION['compose']) && $RCMAIL->db->is_replicated() && $retries++ < 5) {
+  usleep(500000);
+  $RCMAIL->session->reload();
+  $_SESSION['compose'] = $_SESSION['compose_data_'.$COMPOSE_ID];
+}
 
 // Nothing below is called during message composition, only at "new/forward/reply/draft" initialization or
