diff --git a/mysql-test/r/partition_column.result b/mysql-test/r/partition_column.result
index 0aaa4e78f68c2610d40b04b462e65a7430da56ee..66308321a95725d21233bda72e3c97d2b91d60ac 100644
--- a/mysql-test/r/partition_column.result
+++ b/mysql-test/r/partition_column.result
@@ -1,4 +1,36 @@
 drop table if exists t1;
+create table t1 (a int, b int)
+partition by list column_list(a,b)
+( partition p0 values in (column_list(1, NULL), column_list(2, NULL),
+column_list(NULL, NULL)),
+partition p1 values in (column_list(1,1), column_list(2,2)),
+partition p2 values in (column_list(3, NULL), column_list(NULL, 1)));
+insert into t1 values (3, NULL);
+insert into t1 values (NULL, 1);
+insert into t1 values (NULL, NULL);
+insert into t1 values (1, NULL);
+insert into t1 values (2, NULL);
+insert into t1 values (1,1);
+insert into t1 values (2,2);
+select * from t1 where a = 1;
+a	b
+1	NULL
+1	1
+select * from t1 where a = 2;
+a	b
+2	NULL
+2	2
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL,
+  `b` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+/*!50100 PARTITION BY LIST  COLUMN_LIST(a,b)
+(PARTITION p0 VALUES IN ( COLUMN_LIST(1,NULL), COLUMN_LIST(2,NULL), COLUMN_LIST(NULL,NULL)) ENGINE = MyISAM,
+ PARTITION p1 VALUES IN ( COLUMN_LIST(1,1), COLUMN_LIST(2,2)) ENGINE = MyISAM,
+ PARTITION p2 VALUES IN ( COLUMN_LIST(3,NULL), COLUMN_LIST(NULL,1)) ENGINE = MyISAM) */
+drop table t1;
 create table t1 (a int)
 partition by list (a)
 ( partition p0 values in (1),
@@ -27,6 +59,14 @@ insert into t1 values (4);
 insert into t1 values (NULL);
 insert into t1 values (5);
 ERROR HY000: Table has no partition for value from column_list
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+/*!50100 PARTITION BY LIST  COLUMN_LIST(a)
+(PARTITION p0 VALUES IN ( COLUMN_LIST(2), COLUMN_LIST(1)) ENGINE = MyISAM,
+ PARTITION p1 VALUES IN ( COLUMN_LIST(4), COLUMN_LIST(NULL), COLUMN_LIST(3)) ENGINE = MyISAM) */
 drop table t1;
 create table t1 (a int, b char(10), c varchar(25), d datetime)
 partition by range column_list(a,b,c,d)
diff --git a/mysql-test/t/partition_column.test b/mysql-test/t/partition_column.test
index f551b58119ee7dc096c1321f9ea5bc39ca5b2c51..ff625acdb1d2d2ee6f1fe4e7595d62a7dab5be3f 100644
--- a/mysql-test/t/partition_column.test
+++ b/mysql-test/t/partition_column.test
@@ -8,6 +8,24 @@
 drop table if exists t1;
 --enable_warnings
 
+create table t1 (a int, b int)
+partition by list column_list(a,b)
+( partition p0 values in (column_list(1, NULL), column_list(2, NULL),
+                          column_list(NULL, NULL)),
+  partition p1 values in (column_list(1,1), column_list(2,2)),
+  partition p2 values in (column_list(3, NULL), column_list(NULL, 1)));
+insert into t1 values (3, NULL);
+insert into t1 values (NULL, 1);
+insert into t1 values (NULL, NULL);
+insert into t1 values (1, NULL);
+insert into t1 values (2, NULL);
+insert into t1 values (1,1);
+insert into t1 values (2,2);
+select * from t1 where a = 1;
+select * from t1 where a = 2;
+show create table t1;
+drop table t1;
+
 --error ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
 create table t1 (a int)
 partition by list (a)
@@ -38,6 +56,7 @@ insert into t1 values (4);
 insert into t1 values (NULL);
 --error ER_NO_PARTITION_FOR_GIVEN_VALUE
 insert into t1 values (5);
+show create table t1;
 drop table t1;
 
 create table t1 (a int, b char(10), c varchar(25), d datetime)