**kwds arg was missing from __init__ for Dict{Reader,Writer} classes.
will backport.
diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py
index ba7cc09..d85c5b6 100644
--- a/Lib/test/test_csv.py
+++ b/Lib/test/test_csv.py
@@ -447,6 +447,13 @@
         self.assertEqual(reader.next(), {"1": '1', "2": '2', "3": 'abc',
                                          "4": '4', "5": '5', "6": '6'})
 
+    def test_read_semi_sep(self):
+        reader = csv.DictReader(["1;2;abc;4;5;6\r\n"],
+                                fieldnames="1 2 3 4 5 6".split(),
+                                delimiter=';')
+        self.assertEqual(reader.next(), {"1": '1', "2": '2', "3": 'abc',
+                                         "4": '4', "5": '5', "6": '6'})
+
 class TestArrayWrites(unittest.TestCase):
     def test_int_write(self):
         import array