Index: src/Text.cpp
===================================================================
--- src/Text.cpp	(Revision 18626)
+++ src/Text.cpp	(Arbeitskopie)
@@ -732,7 +734,8 @@
 		}
 		BOOST_ASSERT(cur.pos() > 0);
 		if ((par.isLineSeparator(cur.pos() - 1) || par.isNewline(cur.pos() - 1))
-		    && !par.isDeleted(cur.pos() - 1)) {
+		    && !par.isDeleted(cur.pos() - 1)
+				&& !bidi.isBoundary(cur.buffer(), par, cur.pos())) {
 			static bool sent_space_message = false;
 			if (!sent_space_message) {
 				cur.message(_("You cannot type two spaces this way. "
Index: src/Text2.cpp
===================================================================
--- src/Text2.cpp	(Revision 18626)
+++ src/Text2.cpp	(Arbeitskopie)
@@ -1154,7 +1160,8 @@
 		    && old.pos() < oldpar.size()
 		    && oldpar.isLineSeparator(old.pos())
 		    && oldpar.isLineSeparator(old.pos() - 1)
-		    && !oldpar.isDeleted(old.pos() - 1)) {
+		    && !oldpar.isDeleted(old.pos() - 1)
+				&& !old.text()->bidi.isBoundary(old.buffer(), oldpar, old.pos())) {
 			oldpar.eraseChar(old.pos() - 1, cur.buffer().params().trackChanges);
 #ifdef WITH_WARNINGS
 #warning This will not work anymore when we have multiple views of the same buffer
