diff --git a/modules/node/node.module b/modules/node/node.module
index 1ecc093..0a40de2 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -1451,6 +1451,13 @@ function template_preprocess_node(&$variables) {
   $variables['node_url']  = url($uri['path'], $uri['options']);
   $variables['title']     = check_plain($node->title);
   $variables['page']      = $variables['view_mode'] == 'full' && node_is_page($node);
+  
+  if ($variables['page']) {
+    $variables['element_type'] = 'article';
+  }
+  else {
+    $variables['element_type'] = 'section';
+  }
 
   // Flatten the node object's member fields.
   $variables = array_merge((array) $node, $variables);
diff --git a/modules/node/node.tpl.php b/modules/node/node.tpl.php
index 6d0f489..f531c8a 100644
--- a/modules/node/node.tpl.php
+++ b/modules/node/node.tpl.php
@@ -51,6 +51,8 @@
  * - $zebra: Outputs either "even" or "odd". Useful for zebra striping in
  *   teaser listings.
  * - $id: Position of the node. Increments each time it's output.
+ * - $element_type: Full view_mode renders section tag, teaser renders article tag
+ *   allows developer/themer to choose element to use based on view_mode
  *
  * Node status variables:
  * - $view_mode: View mode, e.g. 'full', 'teaser'...
@@ -78,21 +80,23 @@
  * @see template_process()
  */
 ?>
-<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
+<<?php print $element_type; ?> id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
 
-  <?php print $user_picture; ?>
+  <header>
+    <?php print $user_picture; ?>
 
-  <?php print render($title_prefix); ?>
-  <?php if (!$page): ?>
-    <h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
-  <?php endif; ?>
-  <?php print render($title_suffix); ?>
+    <?php print render($title_prefix); ?>
+    <?php if (!$page): ?>
+      <h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
+    <?php endif; ?>
+    <?php print render($title_suffix); ?>
 
-  <?php if ($display_submitted): ?>
-    <div class="submitted">
-      <?php print $submitted; ?>
-    </div>
-  <?php endif; ?>
+    <?php if ($display_submitted): ?>
+      <div class="submitted">
+        <?php print $submitted; ?>
+      </div>
+    <?php endif; ?> 
+  </header>
 
   <div class="content"<?php print $content_attributes; ?>>
     <?php
@@ -102,9 +106,13 @@
       print render($content);
     ?>
   </div>
-
-  <?php print render($content['links']); ?>
-
+  
+  <?php if($content['links']): ?>
+  <footer>
+    <?php print render($content['links']); ?>
+  </footer>
+  <?php endif; ?>
+  
   <?php print render($content['comments']); ?>
 
-</div>
+</<?php print $element_type; ?>>
