From 50802fa8e234ba241036c7fded8a57c6088722ea Mon Sep 17 00:00:00 2001
From: Glenn Morris <rgm@gnu.org>
Date: Sun, 6 Jul 2014 16:58:52 -0700
Subject: [PATCH] * cua-rect.el (cua--activate-rectangle): Avoid setting
 cua--rectangle to nil.

Fixes: debbugs:17877
---
 lisp/ChangeLog             | 5 +++++
 lisp/emulation/cua-rect.el | 8 ++++----
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index d97faa780c2..bfa5c5cd24b 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2014-07-06  Glenn Morris  <rgm@gnu.org>
+
+	* emulation/cua-rect.el (cua--activate-rectangle):
+	Avoid setting cua--rectangle to nil.  (Bug#17877)
+
 2014-07-06  Stephen Berman  <stephen.berman@gmx.net>
 
 	* calendar/todo-mode.el: Fix wrong-type-argument error when
diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el
index d516bd4c7cc..31dd137a6b9 100644
--- a/lisp/emulation/cua-rect.el
+++ b/lisp/emulation/cua-rect.el
@@ -726,11 +726,11 @@ If command is repeated at same position, delete the rectangle."
   ;; Set cua--rectangle to indicate we're marking a rectangle.
   ;; Be careful if we are already marking a rectangle.
   (setq cua--rectangle
-        (if (and cua--last-rectangle
+        (or (and cua--last-rectangle
                  (eq (car cua--last-rectangle) (current-buffer))
-                 (eq (car (cdr cua--last-rectangle)) (point)))
-            (cdr (cdr cua--last-rectangle))
-          (cua--rectangle-get-corners))
+                 (eq (car (cdr cua--last-rectangle)) (point))
+                 (cdr (cdr cua--last-rectangle)))
+            (cua--rectangle-get-corners))
         cua--status-string (if (cua--rectangle-virtual-edges) " [R]" "")
         cua--last-rectangle nil)
   (activate-mark))
-- 
2.39.5