diff --git a/src/Plugin/Field/FieldFormatter/ViewsReferenceFieldFormatter.php b/src/Plugin/Field/FieldFormatter/ViewsReferenceFieldFormatter.php
index 850d7be..9e21611 100644
--- a/src/Plugin/Field/FieldFormatter/ViewsReferenceFieldFormatter.php
+++ b/src/Plugin/Field/FieldFormatter/ViewsReferenceFieldFormatter.php
@@ -147,6 +147,30 @@ class ViewsReferenceFieldFormatter extends FormatterBase implements TrustedCallb
     }
 
     $view->setDisplay($display_id);
+
+    $arguments = !empty($unserialized_data['argument']) ? explode('/', $unserialized_data['argument']) : [];
+    if ($arguments) {
+      // Get the view display.
+      $display = $view->storage->getDisplay($display_id);
+      // Contexual arguments if they are not overriden are set only in default.
+      if (empty($display['display_options']['arguments'])) {
+        $default_display = $view->storage->getDisplay('default');
+        // If no arguments found try to get the ones from default display.
+        $display['display_options']['arguments'] = $default_display['display_options']['arguments'];
+      }
+      $display_arguments = array_values($display['display_options']['arguments']);
+
+      // If no value has been provided for an argument use the default value for
+      // displaying all results.
+      foreach ($arguments as $num => &$argument) {
+        if (empty($argument) && !empty($display_arguments[$num]['exception']['value'])) {
+          $argument = $display_arguments[$num]['exception']['value'];
+        }
+      }
+      unset($argument);
+      $unserialized_data['argument'] = implode('/', $arguments);
+    }
+
     // Add properties to the view so our hook_views_pre_build() implementation
     // can alter the view. This is pretty hacky, but we need this to fix ajax
     // behaviour in views. The hook_views_pre_build() needs to know if the
