diff --git a/plugins/layouts/flexible/flexible.inc b/plugins/layouts/flexible/flexible.inc
index 8f11bba..9c8c4ef 100644
--- a/plugins/layouts/flexible/flexible.inc
+++ b/plugins/layouts/flexible/flexible.inc
@@ -455,6 +455,8 @@ function panels_flexible_render_items($renderer, $list, $owner_id) {
   $groups = array('left' => '', 'middle' => '', 'right' => '');
   $max = count($list) - 1;
   $prev = NULL;
+  // we add language
+  global $language;
 
   foreach ($list as $position => $id) {
     $item = $renderer->settings['items'][$id];
@@ -470,7 +472,11 @@ function panels_flexible_render_items($renderer, $list, $owner_id) {
         $groups[$location] .= panels_flexible_render_item($renderer, $item, $content, $id, $position, $max);
         break;
       case 'row':
-        $content = panels_flexible_render_items($renderer, $item['children'], $renderer->base['row'] . '-' . $id);
+  	// if language direction = rtl we reverse the items
+	if ($language->direction == 1)
+        $content = panels_flexible_render_items($renderer, array_reverse($item['children']), $renderer->base['row'] . '-' . $id);
+	else
+	$content = panels_flexible_render_items($renderer, $item['children'], $renderer->base['row'] . '-' . $id);
         $groups[$location] .= panels_flexible_render_item($renderer, $item, $content, $id, $position, $max, TRUE);
         break;
       case 'region':
