diff --git a/mysql-test/r/csv.result b/mysql-test/r/csv.result
index 4b96f5a5ed04b86a6435494a64591a23c0349c83..e2eebdfc992690c7e212217a790faf7e92e70a0a 100644
--- a/mysql-test/r/csv.result
+++ b/mysql-test/r/csv.result
@@ -5394,17 +5394,24 @@ select * from t1;
 ERROR HY000: File 'MYSQLD_DATADIR/test/t1.CSV' not found (Errcode: 2)
 unlock tables;
 drop table t1;
-create table t1(a enum ('a') not null) engine=csv;
-insert into t1 values (2);
+CREATE TABLE t1 (e enum('foo','bar') NOT NULL) ENGINE = CSV;
+INSERT INTO t1 VALUES();
+INSERT INTO t1 VALUES(default);
+INSERT INTO t1 VALUES(0);
 Warnings:
-Warning	1265	Data truncated for column 'a' at row 1
-select * from t1 limit 1;
-ERROR HY000: Table 't1' is marked as crashed and should be repaired
-repair table t1;
-Table	Op	Msg_type	Msg_text
-test.t1	repair	Warning	Data truncated for column 'a' at row 1
-test.t1	repair	status	OK
-select * from t1 limit 1;
-a
-drop table t1;
+Warning	1265	Data truncated for column 'e' at row 1
+INSERT INTO t1 VALUES(3);
+Warnings:
+Warning	1265	Data truncated for column 'e' at row 1
+INSERT INTO t1 VALUES(-1);
+Warnings:
+Warning	1265	Data truncated for column 'e' at row 1
+SELECT * FROM t1;
+e
+foo
+foo
+
+
+
+DROP TABLE t1;
 End of 5.1 tests
diff --git a/mysql-test/r/default.result b/mysql-test/r/default.result
index 5b0d82407a21fe1150c20e51eabaa6353f9da1ad..9afffe4c3bc1e81d6969f8ec869d72f0156234ca 100644
--- a/mysql-test/r/default.result
+++ b/mysql-test/r/default.result
@@ -180,7 +180,6 @@ insert into bug20691 values (2, 3, 5, '0007-01-01', 11, 13, 17, '0019-01-01 00:0
 insert into bug20691 values (DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, 4);
 Warnings:
 Warning	1364	Field 'a' doesn't have a default value
-Warning	1364	Field 'b' doesn't have a default value
 Warning	1364	Field 'c' doesn't have a default value
 Warning	1364	Field 'd' doesn't have a default value
 Warning	1364	Field 'e' doesn't have a default value
@@ -193,7 +192,7 @@ a	b	c	d	e	f	g	h	i	x
 two	large	00:00:05	0007-01-01	11	13	17	0019-01-01 00:00:00	23	1
 	small	00:00:00	0000-00-00	0			0000-00-00 00:00:00	0	2
 two	large	00:00:05	0007-01-01	11	13	17	0019-01-01 00:00:00	23	3
-		00:00:00	0000-00-00	0			0000-00-00 00:00:00	0	4
+	small	00:00:00	0000-00-00	0			0000-00-00 00:00:00	0	4
 drop table bug20691;
 create table t1 (id int not null);
 insert into t1 values(default);
diff --git a/mysql-test/t/csv.test b/mysql-test/t/csv.test
index cdf274190dde6e7fafbf04afd50bd28685dc5ac1..b31fa83588b3ba02c7b756c22e01e2066331d578 100644
--- a/mysql-test/t/csv.test
+++ b/mysql-test/t/csv.test
@@ -1807,16 +1807,16 @@ unlock tables;
 drop table t1;
 
 #
-# Bug#41441 repair csv table crashes debug server
-#
-# Note: The test should be removed after Bug#33717 is fixed
+# Bug#33717 INSERT...(default) fails for enum. Crashes CSV tables, loads spaces for MyISAM
+#
+CREATE TABLE t1 (e enum('foo','bar') NOT NULL) ENGINE = CSV;
+INSERT INTO t1 VALUES();
+INSERT INTO t1 VALUES(default);
+INSERT INTO t1 VALUES(0);
+INSERT INTO t1 VALUES(3);
+INSERT INTO t1 VALUES(-1);
+SELECT * FROM t1;
+DROP TABLE t1;
 
-create table t1(a enum ('a') not null) engine=csv;
-insert into t1 values (2);
---error ER_CRASHED_ON_USAGE
-select * from t1 limit 1;
-repair table t1;
-select * from t1 limit 1;
-drop table t1;
 
 --echo End of 5.1 tests
diff --git a/sql/item.cc b/sql/item.cc
index df266434f72171334b33c61957860086578a41aa..f8cca3a0667f7ff2bf2a26e4e33310d5cdb45dea 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -6488,7 +6488,8 @@ int Item_default_value::save_in_field(Field *field_arg, bool no_conversions)
 {
   if (!arg)
   {
-    if (field_arg->flags & NO_DEFAULT_VALUE_FLAG)
+    if (field_arg->flags & NO_DEFAULT_VALUE_FLAG &&
+        field_arg->real_type() != MYSQL_TYPE_ENUM)
     {
       if (field_arg->reset())
       {
diff --git a/storage/csv/ha_tina.cc b/storage/csv/ha_tina.cc
index ca9d521531030d3c6e389d0797df7e892fd10480..e3bc7f55dd22c66bcab9ae7a5ed1e10b0d418ec7 100644
--- a/storage/csv/ha_tina.cc
+++ b/storage/csv/ha_tina.cc
@@ -679,9 +679,21 @@ int ha_tina::find_current_row(uchar *buf)
 
     if (read_all || bitmap_is_set(table->read_set, (*field)->field_index))
     {
+      bool is_enum= ((*field)->real_type() ==  MYSQL_TYPE_ENUM);
+      /*
+        Here CHECK_FIELD_WARN checks that all values in the csv file are valid
+        which is normally the case, if they were written  by
+        INSERT -> ha_tina::write_row. '0' values on ENUM fields are considered
+        invalid by Field_enum::store() but it can store them on INSERT anyway.
+        Thus, for enums we silence the warning, as it doesn't really mean
+        an invalid value.
+      */
       if ((*field)->store(buffer.ptr(), buffer.length(), buffer.charset(),
-                          CHECK_FIELD_WARN))
-        goto err;
+                          is_enum ? CHECK_FIELD_IGNORE : CHECK_FIELD_WARN))
+      {
+        if (!is_enum)
+          goto err;
+      }
       if ((*field)->flags & BLOB_FLAG)
       {
         Field_blob *blob= *(Field_blob**) field;