diff --git a/packages/slate/src/commands/at-range.js b/packages/slate/src/commands/at-range.js
index 9a84d6da1..507fd47f6 100644
--- a/packages/slate/src/commands/at-range.js
+++ b/packages/slate/src/commands/at-range.js
@@ -312,7 +312,12 @@ Commands.deleteBackwardAtRange = (editor, range, n = 1) => {
// PERF: If the closest block is empty, remove it. This is just a shortcut,
// since merging it would result in the same outcome.
- if (document.nodes.size !== 1 && block && block.text === '') {
+ if (
+ document.nodes.size !== 1 &&
+ block &&
+ block.text === '' &&
+ block.nodes.size === 1
+ ) {
editor.removeNodeByKey(block.key)
return
}
diff --git a/packages/slate/test/commands/at-current-range/delete-backward/empty-after-multiple-void-blocks.js b/packages/slate/test/commands/at-current-range/delete-backward/empty-after-multiple-void-blocks.js
new file mode 100644
index 000000000..228f5d6a9
--- /dev/null
+++ b/packages/slate/test/commands/at-current-range/delete-backward/empty-after-multiple-void-blocks.js
@@ -0,0 +1,32 @@
+/** @jsx h */
+
+import h from '../../../helpers/h'
+
+export default function(editor) {
+ editor.deleteBackward()
+}
+
+export const input = (
+
+
+
+
+
+
+
+
+
+
+)
+
+export const output = (
+
+
+
+
+
+
+
+
+
+)