diff --git a/plugins/layouts/flexible/flexible.inc b/plugins/layouts/flexible/flexible.inc
index 8f11bba..c5a5bd0 100644
--- a/plugins/layouts/flexible/flexible.inc
+++ b/plugins/layouts/flexible/flexible.inc
@@ -455,7 +455,7 @@ function panels_flexible_render_items($renderer, $list, $owner_id) {
   $groups = array('left' => '', 'middle' => '', 'right' => '');
   $max = count($list) - 1;
   $prev = NULL;
-
+  global $language;
   foreach ($list as $position => $id) {
     $item = $renderer->settings['items'][$id];
     $location = isset($renderer->positions[$id]) ? $renderer->positions[$id] : 'middle';
@@ -470,7 +470,13 @@ 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 == LANGUAGE_RTL) {
+          $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':
