diff --git a/dart.module b/dart.module
index 6ba18ca..6b3242b 100644
--- a/dart.module
+++ b/dart.module
@@ -284,25 +284,28 @@ function dart_tag_prepare_noscript($tag) {
 
   // Set an initial value for tile.
   $tile = is_null($tile) ? variable_get('dart_special_tile_init', '0') : $tile;
-
+  $current_tile = $tile;
+  
   // Add the special key|value pairs to the noscript tag.
   $special_key_vals  = _dart_get_special_key_vals();
-  if (isset($special_key_vals['tile'])) {
-    $tile++;
-  }
-  if (isset($special_key_vals['ord'])) {
-    $ord = $ord == 0 ? rand(1000000000, 9999999999) . '?' : $ord;
+  foreach ($special_key_vals as $key_val) {
+    if ($key_val['key'] == 'tile') {
+      $current_tile = $tile++;
+    }
+    elseif ($key_val['key'] == 'ord') {
+      $ord = $ord == 0 ? rand(1000000000, 9999999999) . '?' : $ord;
+    }
   }
 
   // Begin building the src for the noscript tag.
-  $src  = DART_URL . ($tag->network_id != '' ? '/' . $tag->network_id : '') . '/ad/' . $tag->prefix . '.' . $tag->site . '/' . $tag->zone . ';pos=' . $tag->pos . ';sz=' . $tag->sz . ';';
+  $src  = DART_URL . ($tag->network_id != '' ? '/' . $tag->network_id : '') . '/ad/' . $tag->prefix . '.' . $tag->site . '/' . $tag->zone . ';';
 
   // Add global & tag-specific key|value pairs.
   foreach ($tag->key_vals as $key => $vals) {
     foreach ($vals as $val) {
       // Only add key|value pairs that do not require javacript and are not
       // "special" key|value pairs.
-      if (!$val['eval'] && !in_array($key, $special_key_vals)) {
+      if (!$val['eval'] && !in_array($key, array('tile', 'ord'))) {
         $src .= $key . '=' . $val['val'] . ';';
       }
     }
diff --git a/modules/dart_taxonomy/dart_taxonomy.module b/modules/dart_taxonomy/dart_taxonomy.module
index f186afc..70e1f1b 100644
--- a/modules/dart_taxonomy/dart_taxonomy.module
+++ b/modules/dart_taxonomy/dart_taxonomy.module
@@ -46,7 +46,7 @@ function dart_taxonomy_form_alter(&$form, &$form_state, $form_id) {
         $form['display_options']['include_terms'] = array(
           '#type' => 'checkbox',
           '#title' => t('Include taxonomy terms as key|value pairs'),
-          '#default_value' => $tag->settings['options']['include_terms'],
+          '#default_value' => (isset($tag->settings['options']['include_terms']) ? $tag->settings['options']['include_terms'] : '0'),
         );
       }
       break;
@@ -210,13 +210,29 @@ function dart_taxonomy_dart_key_vals($tag) {
   if (isset($tag->settings['options']['include_terms']) && $tag->settings['options']['include_terms']) {
     $terms = array();
 
-    // If this is a node, grab the taxonomy terms.
-    // Drupal 7 doesn't have $node->taxonomy so use the default field_tags field
-    // TODO find all taxonomy fields for node and build array of terms from that
+    // If this is a node, grab the taxonomy terms from all taxonomy fields.
     if (arg(0) == 'node' && is_numeric(arg(1))) {
       $node = node_load(arg(1));
-      foreach (field_get_items('node', $node, 'field_tags') as $term_array) {
-        $terms[] = $term_array['taxonomy_term'];
+      $node_fields = field_info_instances('node', $node->type);
+      foreach ($node_fields as $field_name => $field_instance) {
+        $field_info = field_info_field($field_name);
+        if ($field_info['type'] !== 'taxonomy_term_reference') {
+          continue;
+        }
+        $field_items = field_get_items('node', $node, $field_name);
+        if (empty($field_items) || !is_array($field_items)) {
+          continue;
+        }
+        foreach ($field_items as $item) {
+          if (!isset($terms[$item['tid']])) {
+            if (isset($item['taxonomy_term'])) {
+              $terms[$item['tid']] = $item['taxonomy_term'];
+            }
+            else {
+              $terms[$item['tid']] = taxonomy_term_load($item['tid']);
+            }
+          }
+        }
       }
     }
     // If this is a term page, grab the term.
