diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result
index 37839fdb65016683f29a4216fc14ab1891ddaa6f..db989481aa3677afe59db7fb39af5a617a6180b7 100644
--- a/mysql-test/r/sp.result
+++ b/mysql-test/r/sp.result
@@ -893,6 +893,21 @@ avg	0	4.4
 delete from t1|
 delete from t2|
 drop procedure bug1874|
+create procedure bug2260()
+begin
+declare v1 int;
+declare continue handler for not found set @x2 = 1;
+declare c1 cursor for select data from t1;
+open c1;
+fetch c1 into v1;
+set @x2 = 2;
+close c1;
+end|
+call bug2260()|
+select @x2|
+@x2
+2
+drop procedure bug2260|
 drop table if exists fac|
 create table fac (n int unsigned not null primary key, f bigint unsigned)|
 create procedure ifac(n int unsigned)
diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test
index 11a00c51996a5494c668519713eaf97eb84facca..be9bc53b9fc6a0d08c6f35203fc8022a4db0b7ed 100644
--- a/mysql-test/t/sp.test
+++ b/mysql-test/t/sp.test
@@ -1036,6 +1036,25 @@ delete from t1|
 delete from t2|
 drop procedure bug1874|
 
+#
+# BUG#2260
+#
+create procedure bug2260()
+begin
+  declare v1 int;
+  declare continue handler for not found set @x2 = 1;
+  declare c1 cursor for select data from t1;
+
+  open c1;
+  fetch c1 into v1;
+  set @x2 = 2;
+  close c1;
+end|
+
+call bug2260()|
+select @x2|
+drop procedure bug2260|
+
 
 #
 # Some "real" examples
diff --git a/sql/sp_rcontext.cc b/sql/sp_rcontext.cc
index 225adc74a6bcc6b7d103dd429e50665344c4b31c..f328cdb728579e544489bd99cca47288bc9686a7 100644
--- a/sql/sp_rcontext.cc
+++ b/sql/sp_rcontext.cc
@@ -72,15 +72,15 @@ sp_rcontext::find_handler(uint sql_errno)
 	found= 1;
       break;
     case sp_cond_type_t::warning:
-      if (sqlstate[0] == '0' && sqlstate[0] == '1')
+      if (sqlstate[0] == '0' && sqlstate[1] == '1')
 	found= 1;
       break;
     case sp_cond_type_t::notfound:
-      if (sqlstate[0] == '0' && sqlstate[0] == '2')
+      if (sqlstate[0] == '0' && sqlstate[1] == '2')
 	found= 1;
       break;
     case sp_cond_type_t::exception:
-      if (sqlstate[0] != '0' || sqlstate[0] > '2')
+      if (sqlstate[0] != '0' || sqlstate[1] > '2')
 	found= 1;
       break;
     }