diff --git a/src/index.js b/src/index.js
index 6b864c09..dfa9ddb3 100644
--- a/src/index.js
+++ b/src/index.js
@@ -86,7 +86,7 @@ function renderToString(vnode, context, opts, inner, isSvgMode, selectValue) {
// the context value as `this.context` just for this component.
let cxType = nodeName.contextType;
let provider = cxType && context[cxType.__c];
- let cctx = cxType != null ? (provider ? provider.props.value : cxType._defaultValue) : context;
+ let cctx = cxType != null ? (provider ? provider.props.value : cxType.__) : context;
// stateless functional components
rendered = nodeName.call(vnode.__c, props, cctx);
@@ -95,7 +95,7 @@ function renderToString(vnode, context, opts, inner, isSvgMode, selectValue) {
// class-based components
let cxType = nodeName.contextType;
let provider = cxType && context[cxType.__c];
- let cctx = cxType != null ? (provider ? provider.props.value : cxType._defaultValue) : context;
+ let cctx = cxType != null ? (provider ? provider.props.value : cxType.__) : context;
// c = new nodeName(props, context);
c = vnode.__c = new nodeName(props, cctx);
diff --git a/test/context.js b/test/context.js
index 026911f2..50cac60c 100644
--- a/test/context.js
+++ b/test/context.js
@@ -96,4 +96,21 @@ describe('context', () => {
`);
});
+
+ it('should support default context value with absent provider', () => {
+ const { Consumer } = createContext('correct');
+ let rendered = renderJsx(
+
+ {(value) => (
+
+ )}
+
+ );
+
+ expect(rendered).to.equal(dedent`
+
+ `);
+ });
});