diff --git a/src/render.js b/src/render.js
index <HASH>..<HASH> 100644
--- a/src/render.js
+++ b/src/render.js
@@ -43,14 +43,21 @@ function render(element, screen) {
   const id = ReactInstanceHandles.createReactRootID();
 
   // Mounting the app
-  const transaction = ReactUpdates.ReactReconcileTransaction.getPooled(),
-        component = instantiateReactComponent(element);
+  const component = instantiateReactComponent(element);
 
   // Injecting the screen
   ReactBlessedIDOperations.setScreen(screen);
 
-  transaction.perform(() => {
-    component.mountComponent(id, transaction, {});
+  // The initial render is synchronous but any updates that happen during
+  // rendering, in componentWillMount or componentDidMount, will be batched
+  // according to the current batching strategy.
+  ReactUpdates.batchedUpdates(() => {
+    // Batched mount component
+    const transaction = ReactUpdates.ReactReconcileTransaction.getPooled();
+    transaction.perform(() => {
+      component.mountComponent(id, transaction, {});
+    });
+    ReactUpdates.ReactReconcileTransaction.release(transaction);
   });
 
   // Returning the screen so the user can attach listeners etc.
Fixed a nasty bug with initial render not being batched