diff --git a/nodesinblock.module b/nodesinblock.module
index 90b48e4..ea33786 100644
--- a/nodesinblock.module
+++ b/nodesinblock.module
@@ -30,6 +30,9 @@ function nodesinblock_theme() {
     'nodesinblock_queue' => array(
       'render element' => 'form',
     ),
+    'nodesinblock_item' => array(
+      'render element' => 'elements',
+    ),
   );
 }
 
@@ -257,6 +260,39 @@ function nodesinblock_block_view($delta = '') {
 }
 
 /**
+ * Theme an item in nodesinblock.
+ *
+ * @param @node
+ *   The node being rendered.
+ * @param $classes
+ *   A collection of classes
+ * @param $view_mode
+ *   The name of the view mode.
+ * @param $links
+ *   Whether links need to be rendered or not.
+ */
+function theme_nodesinblock_item($variables) {
+
+  $node = $variables['node'];
+  $classes = $variables['classes'];
+  $view_mode = $variables['view_mode'];
+  $links = $variables['links'];
+
+  // Render node.
+  $node_content = node_view($node, $view_mode);
+  if (!$links) {
+    hide($node_content['links']);
+  }
+
+  $output = '';
+  $output .= '<div class="'. implode(' ', $classes) .'" id="nodesinblock-'. $node->nid .'">';
+  $output .= render($node_content);
+  $output .= '</div>';
+
+  return $output;
+}
+
+/**
  * Tab title.
  *
  * @param $node
@@ -435,19 +471,19 @@ function _nodesinblock_show($delta, $visibility) {
         if ($i %2 == 0) $classes[] = 'odd'; else $classes[] = 'even';
         $i++;
 
-        // Render node.
         list($view_mode, $links) = explode(':', $row->render);
-        $node_content = node_view($node, $view_mode);
-        if (!$links) {
-          unset($node_content['links']);
-        }
 
         // Return output.
-        $output .= '<div class="'. implode(' ', $classes) .'" id="nodesinblock-'. $node->nid .'">';
-        $output .= render($node_content);
-        $output .= '</div>';
+        $variables = array(
+          'node' => $node,
+          'view_mode' => $view_mode,
+          'links' => $links,
+          'classes' => $classes,
+        );
+        $output .= theme('nodesinblock_item', $variables);
       }
     }
   }
+
   return $output;
 }
