Index: node.tpl.php
=========================================================
--- node.tpl.php	(revision 1.3.2.2)
+++ node.tpl.php	Tue Jun 15 23:55:56 EDT 2010
@@ -77,15 +77,15 @@
  * @see template_process()
  */
 ?>
-<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?>"<?php print $attributes; ?>>
+<div<?php print $attributes; ?>>
 
   <?php print $user_picture; ?>
 
+  <?php print render($title_prefix); ?>
   <?php if (!$page && $title): ?>
-  <?php print render($title_prefix); ?>
   <h2 <?php print $title_attributes; ?>><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
+  <?php endif; ?>
   <?php print render($title_suffix); ?>
-  <?php endif; ?>
   <?php if ($display_submitted):?>
   <div class="submitted"><?php print $date; ?> -- <?php print $name; ?></div>
   <?php endif; ?>
Index: page.tpl.php
=========================================================
--- page.tpl.php	(revision 1.8.2.9)
+++ page.tpl.php	Wed Jun 16 00:15:53 EDT 2010
@@ -116,10 +116,16 @@
           <div id="content-tabs" class=""><?php print render($tabs); ?></div><!-- /#content-tabs -->
         <?php endif; ?>
     
+        <?php print render($title_prefix); ?>
         <?php if ($title): ?>
           <h1 class="title" id="page-title"><?php print $title; ?></h1>
         <?php endif; ?>
-    
+        <?php print render($title_suffix); ?>
+
+        <?php if ($action_links): ?>
+          <ul class="action-links"><?php print render($action_links); ?></ul>
+        <?php endif; ?>
+
         <div id="main-content" class="region clearfix">
           <?php print render($page['content']); ?>
         </div><!-- /#main-content -->
Index: preprocess/preprocess-node.inc
=========================================================
--- preprocess/preprocess-node.inc	(revision 1.4.2.1)
+++ preprocess/preprocess-node.inc	Wed Jun 16 02:24:45 EDT 2010
@@ -6,65 +6,45 @@
  *
  * @return $vars
  */
-// Prepare the arrays to handle the classes and ids for the node container.
-$vars['node_attributes'] = array();
-// Add an id to allow the styling of a specific node.
-$vars['node_attributes']['id'] = 'node-' . $vars['type'] . '-' . $vars['nid'];
-
-// Add the default .node class
-$vars['node_attributes']['class'][] = 'node';
-
 // Add a class to allow styling of nodes of a specific type.
-$vars['node_attributes']['class'][] = $vars['type'];
+$vars['classes_array'][] = drupal_html_class($vars['type']);
 
 // Add a class to allow styling based on publish status.
-if ($vars['status'] > 0) {
-  $vars['node_attributes']['class'][] = 'published';
-}
-else {
-  $vars['node_attributes']['class'][] = 'unpublished';
-}
+$vars['classes_array'][] = $vars['status'] ? 'published' : 'unpublished';
 
 // Add a class to allow styling based on promotion.
-if ($vars['promote'] > 0) {
-  $vars['node_attributes']['class'][] = 'promoted';
-}
-else {
-  $vars['node_attributes']['class'][] = 'not-promoted';
-}
+$vars['classes_array'][] = $vars['promote'] ? 'promoted' : 'not-promoted';
 
 // Add a class to allow styling based on sticky status.
-if ($vars['sticky']) {
-  $vars['node_attributes']['class'][] = 'sticky';
-}
-else {
-  $vars['node_attributes']['class'][] = 'not-sticky';
-}
+$vars['classes_array'][] = $vars['sticky'] ? 'sticky' : 'not-sticky';
 
-// Add a class to allow styling based on if a node is showing a teaser or the 
+// Add a class to allow styling based on if a node is showing a teaser or the
 // whole thing.
-if ($vars['teaser']) {
-  $vars['node_attributes']['class'][] = 'teaser';
-}
-else {
-  $vars['node_attributes']['class'][] = 'full-view';
-}
+$vars['classes_array'][] = $vars['teaser'] ? 'teaser' : 'full-view';
 
-// Add a class to allow styling of nodes being viewed by the author of the 
+// Add a class to allow styling of nodes being viewed by the author of the
 // node in question.
 if ($vars['uid'] == $vars['user']->uid) {
-  $vars['node_attributes']['class'][] = 'self-posted';
+  $vars['classes_array'][] = 'self-posted';
 }
 
 // Add a class to allow styling based on the node author.
-$vars['node_attributes']['class'][] = 'author-' . strtolower(preg_replace('/[^a-zA-Z0-9-]+/', '-', $vars['node']->name));
+$vars['classes_array'][] = drupal_html_class('author-' . $vars['node']->name);
 
 // Add a class to allow styling for zebra striping.
-$vars['node_attributes']['class'][] = $vars['zebra'];
+$vars['classes_array'][] = drupal_html_class($vars['zebra']);
 
 // Add a class to make the node container self clearing.
-$vars['node_attributes']['class'][] = 'clear-block';
+$vars['classes_array'][] = 'clearfix';
 
-// Crunch all the attributes together into a single string to be applied to 
-// the node container.
-$vars['attributes'] = theme('render_attributes', $vars['node_attributes']);
+// Remove node classes provided by core where duplication exists.
+$exclusions = array(drupal_html_class('node-'. $vars['type']), 'node-promoted', 'node-sticky', 'node-teaser', 'node-unpublished');
+foreach ($vars['classes_array'] as $key => $value) {
+  if (in_array($value, $exclusions)) {
+    unset($vars['classes_array'][$key]);
+  }
+}
+
+// Prepare the arrays to handle the classes and ids for the node container.
+$vars['node_attributes']['id'] = drupal_html_id('node-' . $vars['type'] . '-' . $vars['nid']);
+$vars['node_attributes']['class'] = $vars['classes_array'];
Index: starterkit/node.tpl.php
=========================================================
--- starterkit/node.tpl.php	(revision 1.1.2.1)
+++ starterkit/node.tpl.php	Tue Jun 15 23:56:19 EDT 2010
@@ -77,15 +77,15 @@
  * @see template_process()
  */
 ?>
-<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?>"<?php print $attributes; ?>>
+<div<?php print $attributes; ?>>
 
   <?php print $user_picture; ?>
 
+  <?php print render($title_prefix); ?>
   <?php if (!$page && $title): ?>
-  <?php print render($title_prefix); ?>
   <h2 <?php print $title_attributes; ?>><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
+  <?php endif; ?>
   <?php print render($title_suffix); ?>
-  <?php endif; ?>
   <?php if ($display_submitted):?>
   <div class="submitted"><?php print $date; ?> -- <?php print $name; ?></div>
   <?php endif; ?>
Index: starterkit/page.tpl.php
=========================================================
--- starterkit/page.tpl.php	(revision 1.1.2.11)
+++ starterkit/page.tpl.php	Wed Jun 16 00:15:05 EDT 2010
@@ -117,9 +117,15 @@
           <div id="content-tabs" class=""><?php print render($tabs); ?></div><!-- /#content-tabs -->
         <?php endif; ?>
     
+        <?php print render($title_prefix); ?>
         <?php if ($title): ?>
           <h1 class="title" id="page-title"><?php print $title; ?></h1>
         <?php endif; ?>
+        <?php print render($title_suffix); ?>
+        
+        <?php if ($action_links): ?>
+          <ul class="action-links"><?php print render($action_links); ?></ul>
+        <?php endif; ?>
     
         <div id="main-content" class="region clearfix">
           <?php print render($page['content']); ?>
Index: starterkit/template.php
=========================================================
--- starterkit/template.php	(revision 1.1.2.4)
+++ starterkit/template.php	Wed Jun 16 02:26:19 EDT 2010
@@ -15,7 +15,6 @@
 }
 // */
 
-
 /**
  * Implementation of HOOK_theme().
  */
@@ -98,16 +97,3 @@
   $vars['sample_variable'] = t('Lorem ipsum.');
 }
 // */
-
-
-/**
- * Create a string of attributes form a provided array.
- * 
- * @param $attributes
- * @return string
- */
-function omega_starterkit_render_attributes($attributes) {
-  // not sure why this has to be here anymore, investigating
-	omega_render_attributes($attributes);
-  
-}
\ No newline at end of file
Index: template.php
=========================================================
--- template.php	(revision 1.9.2.13)
+++ template.php	Tue Jun 15 23:47:37 EDT 2010
@@ -95,7 +95,8 @@
   
 } // end process_page
 function omega_process_node(&$vars) {
-  
+  // Convert node attributes to a string and append to existing RDFa attributes.
+  $vars['attributes'] .= drupal_attributes($vars['node_attributes']);
 } // end process_node
 
 /** 
@@ -240,31 +241,6 @@
 }
 
 /**
- * Converts a string to a suitable html ID attribute.
- *
- * http://www.w3.org/TR/html4/struct/global.html#h-7.5.2 specifies what makes a
- * valid ID attribute in HTML. This function:
- *
- * - Ensure an ID starts with an alpha character by optionally adding an 'id'.
- * - Replaces any character except alphanumeric characters with dashes.
- * - Converts entire string to lowercase.
- *
- * @param $string
- *   The string
- * @return
- *   The converted string
- */
-function omega_id_safe($string) {
-  // Replace with dashes anything that isn't A-Z, numbers, dashes, or underscores.
-  $string = strtolower(preg_replace('/[^a-zA-Z0-9-]+/', '-', $string));
-  // If the first character is not a-z, add 'id' in front.
-  if (!ctype_lower($string{0})) { // Don't use ctype_alpha since its locale aware.
-    $string = 'id' . $string;
-  }
-  return $string;
-}
-
-/**
  * ZEN - Return a themed breadcrumb trail.
  *
  * @param $breadcrumb
@@ -287,6 +263,10 @@
 
     // Return the breadcrumb with separators.
     if (!empty($breadcrumb)) {
+      // Provide a navigational heading to give context for breadcrumb links to
+      // screen-reader users. Make the heading invisible with .element-invisible.
+      $output = '<h2 class="element-invisible">' . t('You are here') . '</h2>';
+
       $breadcrumb_separator = theme_get_setting('omega_breadcrumb_separator');
       $trailing_separator = $title = '';
       if (theme_get_setting('omega_breadcrumb_title')) {
@@ -296,32 +276,13 @@
       elseif (theme_get_setting('omega_breadcrumb_trailing')) {
         $trailing_separator = $breadcrumb_separator;
       }
-      return '<div class="breadcrumb">' . implode($breadcrumb_separator, $breadcrumb) . "$trailing_separator$title</div>";
+      $output .= '<div class="breadcrumb">' . implode($breadcrumb_separator, $breadcrumb) . "$trailing_separator$title</div>";
     }
   }
   // Otherwise, return an empty string.
   return '';
 }
 
-/**
- * Create a string of attributes form a provided array.
- * 
- * @param $attributes
- * @return string
- */
-function omega_render_attributes($attributes) {
-  if ($attributes) {
-    $items = array();
-    foreach($attributes as $attribute => $data) {
-      if(is_array($data)) {
-        $data = implode(' ', $data);
-      }
-      $items[] = $attribute . '="' . $data . '"';
-    }
-    $output = ' ' . implode(' ', $items);
-  }
-  return $output;
-}
 
 /**
  * Implementation of hook_theme().
@@ -333,14 +294,7 @@
   // Since we are rebuilding the theme registry and the theme settings' default
   // values may have changed, make sure they are saved in the database properly.
   //omega_theme_get_default_settings($theme);
-  return array(
-    'id_safe' => array(
-      'arguments' => array('string'),
-    ),
-    'render_attributes' => array(
-      'arguments' => array('attributes'),
-    ),
-  );
+  return array();
 }// */
 
 function omega_css_alter(&$css) {
