diff --git a/.changeset/fast-rockets-admire.md b/.changeset/fast-rockets-admire.md
new file mode 100644
index 00000000..ebec71e7
--- /dev/null
+++ b/.changeset/fast-rockets-admire.md
@@ -0,0 +1,5 @@
+---
+'preact-render-to-string': patch
+---
+
+Fix for shallow rendering incorrectly transforming Fragments into other nodes
diff --git a/src/pretty.js b/src/pretty.js
index 70e9e5a8..59df0e4c 100644
--- a/src/pretty.js
+++ b/src/pretty.js
@@ -103,7 +103,11 @@ function _renderToStringPretty(
// components
if (typeof nodeName === 'function') {
isComponent = true;
- if (opts.shallow && (inner || opts.renderRootComponent === false)) {
+ if (
+ opts.shallow &&
+ (inner || opts.renderRootComponent === false) &&
+ nodeName !== Fragment
+ ) {
nodeName = getComponentName(nodeName);
} else if (nodeName === Fragment) {
const children = [];
diff --git a/test/shallowRender.test.jsx b/test/shallowRender.test.jsx
index 8b981f36..ca332445 100644
--- a/test/shallowRender.test.jsx
+++ b/test/shallowRender.test.jsx
@@ -52,12 +52,26 @@ describe('shallowRender()', () => {
expect(Test).to.have.been.calledOnce;
});
- it('should ignore Fragments', () => {
- let rendered = shallowRender(
-