updated for version 7.3.301
Problem:    When 'smartindent' and 'copyindent' are set a Tab is used even
            though 'expandtab' is set.
Solution:   Do not insert Tabs. Add a test. (Christian Brabandt)
diff --git a/src/misc1.c b/src/misc1.c
index a3a2059..589a145 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -363,7 +363,7 @@
 
 	/* Fill to next tabstop with a tab, if possible */
 	tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts);
-	if (todo >= tab_pad)
+	if (todo >= tab_pad && !curbuf->b_p_et)
 	{
 	    todo -= tab_pad;
 	    ++ind_len;
@@ -372,7 +372,7 @@
 	}
 
 	/* Add tabs required for indent */
-	while (todo >= (int)curbuf->b_p_ts)
+	while (todo >= (int)curbuf->b_p_ts && !curbuf->b_p_et)
 	{
 	    todo -= (int)curbuf->b_p_ts;
 	    ++ind_len;