diff --git a/7.1.293 b/7.1.293
new file mode 100644
index 0000000..df4499c
--- /dev/null
+++ b/7.1.293
@@ -0,0 +1,118 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.293
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.1.293
+Problem:    Spell checking considers super- and subscript characters as word
+	    characters.
+Solution:   Recognize the Unicode super and subscript characters.
+Files:	    src/spell.c
+
+
+*** ../vim-7.1.292/src/spell.c	Tue Apr  1 17:13:54 2008
+--- src/spell.c	Wed Apr  9 15:47:06 2008
+***************
+*** 753,758 ****
+--- 753,759 ----
+  static int spell_iswordp __ARGS((char_u *p, buf_T *buf));
+  static int spell_iswordp_nmw __ARGS((char_u *p));
+  #ifdef FEAT_MBYTE
++ static int spell_mb_isword_class __ARGS((int cl));
+  static int spell_iswordp_w __ARGS((int *p, buf_T *buf));
+  #endif
+  static int write_spell_prefcond __ARGS((FILE *fd, garray_T *gap));
+***************
+*** 9789,9795 ****
+  
+  	c = mb_ptr2char(s);
+  	if (c > 255)
+! 	    return mb_get_class(s) >= 2;
+  	return spelltab.st_isw[c];
+      }
+  #endif
+--- 9790,9796 ----
+  
+  	c = mb_ptr2char(s);
+  	if (c > 255)
+! 	    return spell_mb_isword_class(mb_get_class(s));
+  	return spelltab.st_isw[c];
+      }
+  #endif
+***************
+*** 9812,9818 ****
+      {
+  	c = mb_ptr2char(p);
+  	if (c > 255)
+! 	    return mb_get_class(p) >= 2;
+  	return spelltab.st_isw[c];
+      }
+  #endif
+--- 9813,9819 ----
+      {
+  	c = mb_ptr2char(p);
+  	if (c > 255)
+! 	    return spell_mb_isword_class(mb_get_class(p));
+  	return spelltab.st_isw[c];
+      }
+  #endif
+***************
+*** 9821,9826 ****
+--- 9822,9839 ----
+  
+  #ifdef FEAT_MBYTE
+  /*
++  * Return TRUE if word class indicates a word character.
++  * Only for characters above 255.
++  * Unicode subscript and superscript are not considered word characters.
++  */
++     static int
++ spell_mb_isword_class(cl)
++     int cl;
++ {
++     return cl >= 2 && cl != 0x2070 && cl != 0x2080;
++ }
++ 
++ /*
+   * Return TRUE if "p" points to a word character.
+   * Wide version of spell_iswordp().
+   */
+***************
+*** 9841,9847 ****
+      if (*s > 255)
+      {
+  	if (enc_utf8)
+! 	    return utf_class(*s) >= 2;
+  	if (enc_dbcs)
+  	    return dbcs_class((unsigned)*s >> 8, *s & 0xff) >= 2;
+  	return 0;
+--- 9854,9860 ----
+      if (*s > 255)
+      {
+  	if (enc_utf8)
+! 	    return spell_mb_isword_class(utf_class(*s));
+  	if (enc_dbcs)
+  	    return dbcs_class((unsigned)*s >> 8, *s & 0xff) >= 2;
+  	return 0;
+*** ../vim-7.1.292/src/version.c	Wed Apr  9 12:14:44 2008
+--- src/version.c	Wed Apr  9 15:45:10 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     293,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+268. You get up in the morning and go online before getting your coffee.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/README.patches b/README.patches
index 5ffd87a..98a14bc 100644
--- a/README.patches
+++ b/README.patches
@@ -323,3 +323,5 @@ Individual patches for Vim 7.1:
   1979  7.1.289  when EXITFREE is defined and 'acd' is set freed memory is used
   2146  7.1.290  reading unwritten bytes when spell checking with large indent
   1940  7.1.291  compiler warning for int-long conversion
+  6698  7.1.292  when using a pattern with "\@<=" the submatches can be wrong
+  3087  7.1.293  spell checking considers super/subscript chars as word chars