Special case endpoint access for speed.
diff --git a/Modules/collectionsmodule.c b/Modules/collectionsmodule.c
index f7fb91f..ddc6f88 100644
--- a/Modules/collectionsmodule.c
+++ b/Modules/collectionsmodule.c
@@ -326,18 +326,26 @@
 		return NULL;
 	}
 
-	i += deque->leftindex;
-	n = i / BLOCKLEN;
-	i %= BLOCKLEN;
-	if (i < (deque->len >> 1)) {
+	if (i == 0) {
+		i = deque->leftindex;
 		b = deque->leftblock;
-		while (n--)
-			b = b->rightlink;
-	} else {
-		n = (deque->leftindex + deque->len - 1) / BLOCKLEN - n;
+	} else if (i == deque->len - 1) {
+		i = deque->rightindex;
 		b = deque->rightblock;
-		while (n--)
-			b = b->leftlink;
+	} else {
+		i += deque->leftindex;
+		n = i / BLOCKLEN;
+		i %= BLOCKLEN;
+		if (i < (deque->len >> 1)) {
+			b = deque->leftblock;
+			while (n--)
+				b = b->rightlink;
+		} else {
+			n = (deque->leftindex + deque->len - 1) / BLOCKLEN - n;
+			b = deque->rightblock;
+			while (n--)
+				b = b->leftlink;
+		}
 	}
 	item = b->data[i];
 	Py_INCREF(item);