diff --git a/packages/lingui-react/src/I18nProvider.js b/packages/lingui-react/src/I18nProvider.js
index <HASH>..<HASH> 100644
--- a/packages/lingui-react/src/I18nProvider.js
+++ b/packages/lingui-react/src/I18nProvider.js
@@ -28,9 +28,13 @@ class I18nManager {
     development?: Object,
     i18n?: I18n
   }) {
-    this.i18n = i18n || new I18n(language, messages, languageData)
+    this.i18n = i18n || new I18n()
 
     if (development) this.i18n.development(development)
+
+    if (messages) this.i18n.load(messages)
+    if (languageData) this.i18n.loadLanguageData(languageData)
+    this.i18n.activate(language)
   }
 
   subscribe = (callback: Function) => {
diff --git a/packages/lingui-react/src/dev/index.js b/packages/lingui-react/src/dev/index.js
index <HASH>..<HASH> 100644
--- a/packages/lingui-react/src/dev/index.js
+++ b/packages/lingui-react/src/dev/index.js
@@ -1,4 +1,3 @@
 // Most React projects will import everything from lingui-react module.
 // Reexport dev from lingui-i18n to make it easier.
 export { default } from 'lingui-i18n/dev'
-
fix: Load messages after dev data are setup