diff --git a/src/sites/all/modules/contrib/dfp/dfp.admin.inc b/src/sites/all/modules/contrib/dfp/dfp.admin.inc
index fffb13e..eddae13 100644
--- a/src/sites/all/modules/contrib/dfp/dfp.admin.inc
+++ b/src/sites/all/modules/contrib/dfp/dfp.admin.inc
@@ -71,6 +71,19 @@ function dfp_admin_settings($form, $form_state) {
     '#default_value' => variable_get('dfp_async_rendering', 1),
     '#description' => t('This can speed up page rendering time by loading page content without waiting for ads to load.'),
   );
+
+  $form['global_tag_settings']['dfp_async_load'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Asynchronous loading mode'),
+    '#default_value' => variable_get('dfp_async_load', 0),
+    '#description' => t('Recommended to prevent JavaScript from blocking the parser.'),
+  );  
+  if (!module_exists('advagg')) {
+    $form['global_tag_settings']['dfp_async_load']['#disabled'] = TRUE;
+    $form['global_tag_settings']['dfp_async_load']['#default_value'] = 0;
+    $form['global_tag_settings']['dfp_async_load']['#description'] .= t('This requires the AdvAgg module which is currently disabled.');   
+  }
+
   $form['global_tag_settings']['dfp_disable_init_load'] = array(
     '#type' => 'checkbox',
     '#title' => t('Disable initial ad load'),
diff --git a/src/sites/all/modules/contrib/dfp/dfp.module b/src/sites/all/modules/contrib/dfp/dfp.module
index 3f6aa36..baa4115 100755
--- a/src/sites/all/modules/contrib/dfp/dfp.module
+++ b/src/sites/all/modules/contrib/dfp/dfp.module
@@ -683,6 +683,11 @@ function _dfp_js_global_settings() {
   // @todo: One day this should include an async=true attribute. See #1140356.
   //        However, there is a good chance this might break <= IE8.
   $options['type'] = 'external';
+
+  if (variable_get('dfp_async_load', 1)) {
+    $options['async'] = TRUE;
+  }
+  
   $options['weight']++;
   drupal_add_js(($GLOBALS['is_https'] ? "https://" : "http://") . DFP_GOOGLE_TAG_SERVICES_URL, $options);
 
@@ -719,10 +724,10 @@ function _dfp_js_global_settings() {
       $js .= '  googletag.pubads().setTargeting(' . $target['target'] . ', ' . $target['value'] . ');' . "\n";
     }
   }
-
-  $js .= '});' . "\n";
+  
   $js .= variable_get('dfp_injected_js2', '') . "\n";
   $js .= 'googletag.enableServices();';
+  $js .= '});' . "\n";
 
   $options = array(
     'type' => 'inline',
@@ -741,6 +746,9 @@ function _dfp_js_global_settings() {
 function _dfp_js_slot_definition($tag) {
   // Add the js needed to define this adSlot to <head>.
   $js = '';
+  if (variable_get('dfp_async_load', 1)) {
+    $js = 'googletag.cmd.push(function() {' . "\n";
+  } 
   // Start by defining breakpoints for this ad.
   if (!empty($tag->breakpoints)) {
     $breakpoints = $tag->breakpoints;
@@ -790,6 +798,10 @@ function _dfp_js_slot_definition($tag) {
   }
   $js = rtrim($js, "\n") . ';';
 
+  if (variable_get('dfp_async_load', 1)) {
+    $js .= '});' . "\n";
+  } 
+
   $options = array(
     'type' => 'inline',
     'group' => JS_LIBRARY,
