diff --git a/src/box/sql/where.c b/src/box/sql/where.c
index ed507bf4d7e43397f947204dd38a8d8a6da4674b..7ec43e1849554f604cc454453bd3ff2520395645 100644
--- a/src/box/sql/where.c
+++ b/src/box/sql/where.c
@@ -2867,8 +2867,11 @@ whereLoopAddBtree(WhereLoopBuilder * pBuilder,	/* WHERE clause information */
 	 * If there was an INDEXED BY clause, then only that one
 	 * index is considered.
 	 */
-	uint32_t idx_count = fake_index == NULL || pSrc->pIBIndex != NULL ?
-			     space->index_count : 1;
+	uint32_t idx_count = 0;
+	if (pSrc->pIBIndex != NULL || fake_index != NULL)
+		idx_count = 1;
+	else
+		idx_count = space->index_count;
 	for (uint32_t i = 0; i < idx_count; iSortIdx++, i++) {
 		if (i > 0)
 			probe = space->index[i]->def;
diff --git a/test/sql-tap/eqp.test.lua b/test/sql-tap/eqp.test.lua
index b8c3c66076179fd32cd35759a3140498ada81d97..83ef947bb1548b2fbda9362fa7a84f26813dff81 100755
--- a/test/sql-tap/eqp.test.lua
+++ b/test/sql-tap/eqp.test.lua
@@ -1,6 +1,6 @@
 #!/usr/bin/env tarantool
 test = require("sqltester")
-test:plan(68)
+test:plan(70)
 
 --!./tcltestrunner.lua
 -- 2010 November 6
@@ -772,6 +772,9 @@ test:do_execsql_test(
     [[
         CREATE TABLE t1(a INT , b INT , c INT , PRIMARY KEY(b, c));
         CREATE TABLE t2(id  INT primary key, a INT , b INT , c INT );
+        CREATE TABLE t(id INT PRIMARY KEY, r_d TEXT, s INTEGER);
+        CREATE INDEX i1 ON t (r_d, s);
+        CREATE INDEX i2 ON t (s);
     ]])
 
 test:do_eqp_test("8.1.1", "SELECT * FROM t2", {
@@ -796,5 +799,19 @@ test:do_eqp_test("8.2.4", "SELECT count(*) FROM t1", {
     {0, 0, 0, "B+tree count T1"},
 })
 
+-- Verify that INDEXED BY clause forces specified index.
+-- Test case (in simplified form) is taken from customer.
+--
+test:do_eqp_test(
+    "8.2.5.1",
+    [[ SELECT r_d, s FROM t INDEXED BY i1 WHERE r_d > '10' LIMIT 10; ]], {
+    {0, 0, 0, "SEARCH TABLE T USING COVERING INDEX I1 (R_D>?) (~262144 rows)"},
+})
+
+test:do_eqp_test(
+    "8.2.5.2",
+    [[ SELECT r_d, s FROM t INDEXED BY i1 WHERE r_d > '10' AND s = 0 LIMIT 10; ]], {
+    { 0, 0, 0, "SEARCH TABLE T USING COVERING INDEX I1 (R_D>?) (~245760 rows)" },
+})
 
 test:finish_test()