diff --git a/packages/slate/src/commands/at-range.js b/packages/slate/src/commands/at-range.js
index 04d3e95e0..52d92bd94 100644
--- a/packages/slate/src/commands/at-range.js
+++ b/packages/slate/src/commands/at-range.js
@@ -114,7 +114,8 @@ Commands.deleteAtRange = (editor, range) => {
endOffset === 0 &&
isStartVoid === false &&
startKey === startBlock.getFirstText().key &&
- endKey === endBlock.getFirstText().key
+ endKey === endBlock.getFirstText().key &&
+ startKey !== endKey
// If it's a hanging selection, nudge it back to end in the previous text.
if (isHanging && isEndVoid) {
diff --git a/packages/slate/test/commands/at-current-range/delete/first-position.js b/packages/slate/test/commands/at-current-range/delete/first-position.js
new file mode 100644
index 000000000..076680879
--- /dev/null
+++ b/packages/slate/test/commands/at-current-range/delete/first-position.js
@@ -0,0 +1,29 @@
+/** @jsx h */
+
+import h from '../../../helpers/h'
+
+export default function(editor) {
+ editor.delete()
+}
+
+export const input = (
+
+
+
+
+ word
+
+
+
+)
+
+export const output = (
+
+
+
+
+ word
+
+
+
+)