diff --git a/_test/tests/inc/parser/renderer_xhtml.test.php b/_test/tests/inc/parser/renderer_xhtml.test.php
index d99eac1025b03285ef65cc86e3ef386ead6e366c..295f04ee793ab52ea29643cd922893a20501eab1 100644
--- a/_test/tests/inc/parser/renderer_xhtml.test.php
+++ b/_test/tests/inc/parser/renderer_xhtml.test.php
@@ -49,13 +49,20 @@ class renderer_xhtml_test extends DokuWikiTest {
         $this->assertEquals($expected, $this->R->doc);
     }
 
-    function test_tableopen_4arg() {
+    function test_tableopen_4arg_str() {
         $this->R->table_open(4, 4, 100, 'feature');
 
         $expected = '<div class="table feature sectionedit1"><table class="inline">'."\n";
         $this->assertEquals($expected, $this->R->doc);
     }
 
+    function test_tableopen_4arg_arr() {
+        $this->R->table_open(4, 4, 100, array('feature', 'test'));
+
+        $expected = '<div class="table feature test sectionedit1"><table class="inline">'."\n";
+        $this->assertEquals($expected, $this->R->doc);
+    }
+
     function test_table() {
         $this->R->table_open(null, null, null, 'feature');
         $this->R->tablethead_open();
diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index 0f3d814e66a5dead7c02750befa89a959c1a8e49..c4e111be4458c02e61a96f319247b356cba307b2 100644
--- a/inc/parser/xhtml.php
+++ b/inc/parser/xhtml.php
@@ -428,11 +428,12 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
     /**
      * Open an unordered list
      *
-     * @param string $classes css class
+     * @param string|string[] $classes css class
      */
     function listu_open($classes = null) {
         $class = '';
         if($classes !== null) {
+            if(is_array($classes)) $classes = join(' ', $classes);
             $class = " class=\"$classes\"";
         }
         $this->doc .= "<ul$class>".DOKU_LF;
@@ -448,11 +449,12 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
     /**
      * Open an ordered list
      *
-     * @param string $classes css class
+     * @param string|string[] $classes css class
      */
     function listo_open($classes = null) {
         $class = '';
         if($classes !== null) {
+            if(is_array($classes)) $classes = join(' ', $classes);
             $class = " class=\"$classes\"";
         }
         $this->doc .= "<ol$class>".DOKU_LF;
@@ -1314,13 +1316,14 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
      * @param int $maxcols maximum number of columns
      * @param int $numrows NOT IMPLEMENTED
      * @param int $pos byte position in the original source
-     * @param string $classes css class
+     * @param string|string[] $classes css class
      */
     function table_open($maxcols = null, $numrows = null, $pos = null, $classes = null) {
         // initialize the row counter used for classes
         $this->_counter['row_counter'] = 0;
         $class                         = 'table';
         if($classes !== null) {
+            if(is_array($classes)) $classes = join(' ', $classes);
             $class .= ' ' . $classes;
         }
         if($pos !== null) {
@@ -1373,13 +1376,14 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
     /**
      * Open a table row
      *
-     * @param string $classes css class
+     * @param string|string[] $classes css class
      */
     function tablerow_open($classes = null) {
         // initialize the cell counter used for classes
         $this->_counter['cell_counter'] = 0;
         $class                          = 'row'.$this->_counter['row_counter']++;
         if($classes !== null) {
+            if(is_array($classes)) $classes = join(' ', $classes);
             $class .= ' ' . $classes;
         }
         $this->doc .= DOKU_TAB.'<tr class="'.$class.'">'.DOKU_LF.DOKU_TAB.DOKU_TAB;
@@ -1398,7 +1402,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
      * @param int    $colspan
      * @param string $align left|center|right
      * @param int    $rowspan
-     * @param string $classes css class
+     * @param string|string[] $classes css class
      */
     function tableheader_open($colspan = 1, $align = null, $rowspan = 1, $classes = null) {
         $class = 'class="col'.$this->_counter['cell_counter']++;
@@ -1406,6 +1410,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
             $class .= ' '.$align.'align';
         }
         if($classes !== null) {
+            if(is_array($classes)) $classes = join(' ', $classes);
             $class .= ' ' . $classes;
         }
         $class .= '"';
@@ -1433,7 +1438,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
      * @param int       $colspan
      * @param string    $align left|center|right
      * @param int       $rowspan
-     * @param string    $classes css class
+     * @param string|string[]    $classes css class
      */
     function tablecell_open($colspan = 1, $align = null, $rowspan = 1, $classes = null) {
         $class = 'class="col'.$this->_counter['cell_counter']++;
@@ -1441,6 +1446,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
             $class .= ' '.$align.'align';
         }
         if($classes !== null) {
+            if(is_array($classes)) $classes = join(' ', $classes);
             $class .= ' ' . $classes;
         }
         $class .= '"';