diff --git a/api/context.go b/api/context.go
index 134c5566446964749887edf53a81c2b85a8bb9a0..ffe4a5ebc810718fa77f9ef79a8b67df5cfa0669 100644
--- a/api/context.go
+++ b/api/context.go
@@ -102,11 +102,11 @@ func (ctx apiContext) extract(name string, t reflect.Type, v reflect.Value) erro
 		var paramStrValues []string
 		if paramStrValue, isDefined := ctx.request.QueryStringParameters[n]; isDefined {
 			if len(paramStrValue) >= 2 && paramStrValue[0] == '[' && paramStrValue[len(paramStrValue)-1] == ']' {
-				csvReader := csv.NewReader(strings.NewReader(paramStrValue))
+				csvReader := csv.NewReader(strings.NewReader(paramStrValue[1 : len(paramStrValue)-1]))
 				var err error
 				paramStrValues, err = csvReader.Read()
 				if err != nil {
-					return errors.Wrapf(err, "invalid CSV")
+					return errors.Wrapf(err, "invalid CSV: [%s]", paramStrValue)
 				}
 			} else {
 				paramStrValues = []string{paramStrValue} //single value
diff --git a/api/params_test.go b/api/params_test.go
index 7e21c3fc83bf5e7fd0283d606b44acd8899e6926..cb5dc0d1c0366d1282f9e69037a502cfdfeec707 100644
--- a/api/params_test.go
+++ b/api/params_test.go
@@ -99,9 +99,9 @@ func TestGet(t *testing.T) {
 				"id":     "1",
 				"limit":  "2",
 				"offset": "3",
-				"search": "4",                         //single value parts into string
-				"find1":  "sarel",                     //single value parsed into array
-				"find3":  "[hendrik,,frederik,johan]", //array of 4 values in CSV notation
+				"search": "4",                                       //single value parts into string
+				"find1":  "sarel",                                   //single value parsed into array
+				"find3":  "[hendrik,,\"frederik\",\"johan,johan\"]", //array of 4 values in CSV notation
 			},
 			MultiValueQueryStringParameters: map[string][]string{
 				"find2": {"hans", "gert"}, //multi-values parsed into array
@@ -120,7 +120,7 @@ func TestGet(t *testing.T) {
 		if get.ID != 1 || get.Offset != 3 || get.Limit != 2 || get.Search != "4" || get.Find != "koos" ||
 			len(get.Find1) != 1 || get.Find1[0] != "sarel" ||
 			len(get.Find2) != 2 || get.Find2[0] != "hans" || get.Find2[1] != "gert" ||
-			len(get.Find3) != 4 || get.Find3[0] != "hendrik" || get.Find3[1] != "" || get.Find3[2] != "frederik" || get.Find3[3] != "johan" {
+			len(get.Find3) != 4 || get.Find3[0] != "hendrik" || get.Find3[1] != "" || get.Find3[2] != "frederik" || get.Find3[3] != "johan,johan" {
 			t.Fatalf("wrong values")
 		}
 	}