diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc
index dffffd9296ed4facd057f62b6df6d37297358a56..36202efcc02a0a39a3b4c4628f85d5136a77b33b 100644
--- a/sql/ha_innodb.cc
+++ b/sql/ha_innodb.cc
@@ -1747,9 +1747,14 @@ innobase_mysql_cmp(
 			}
 		}
 
-                ret = my_strnncoll(charset,
-                                  a, a_length,
-                                  b, b_length);
+		/* Starting from 4.1.3 we use strnncollsp() in comparisons of
+		non-latin1_swedish_ci strings. NOTE that the collation order
+		changes then: 'b\0\0...' is ordered BEFORE 'b  ...'. Users
+		having indexes on such data need to rebuild their tables! */
+
+                ret = charset->coll->strnncollsp(charset,
+                                  		a, a_length,
+                                  		b, b_length);
 		if (ret < 0) {
 		        return(-1);
 		} else if (ret > 0) {
@@ -4658,25 +4663,6 @@ ha_innobase::start_stmt(
 	  
 	        prebuilt->select_lock_type = LOCK_X;
 	} else {
-		/* When we first come here after LOCK TABLES,
-		select_lock_type is set to LOCK_S or LOCK_X. Store the value
-		in case we run also consistent reads and need to restore the
-		value later. */
-
-		if (prebuilt->select_lock_type != LOCK_NONE) {
-			prebuilt->stored_select_lock_type =
-					prebuilt->select_lock_type;
-		}
-
-		if (prebuilt->stored_select_lock_type != LOCK_S
-		    && prebuilt->stored_select_lock_type != LOCK_X) {
-			fprintf(stderr,
-"InnoDB: Error: select_lock_type is %lu inside ::start_stmt()!\n",
-			prebuilt->stored_select_lock_type);
-
-			ut_error;
-		}
-
 		if (thd->lex->sql_command == SQLCOM_SELECT
 					&& thd->lex->lock_option == TL_READ) {
 	
@@ -4685,10 +4671,11 @@ ha_innobase::start_stmt(
 
 			prebuilt->select_lock_type = LOCK_NONE;
 		} else {
-			/* Not a consistent read: restore the
-			select_lock_type value */
-			prebuilt->select_lock_type =
-				prebuilt->stored_select_lock_type;
+			/* Not a consistent read: use LOCK_X as the
+			select_lock_type value (TODO: how could we know
+			whether it should be LOCK_S, LOCK_X, or LOCK_NONE?) */
+
+			prebuilt->select_lock_type = LOCK_X;
 		}
 	}