diff --git a/clickpath.module b/clickpath.module
index df574d1..2a5c6b4 100644
--- a/clickpath.module
+++ b/clickpath.module
@@ -48,19 +48,35 @@ function clickpath_admin_settings() {
     '#title' => t('Number of paths to save'),
     '#default_value' => variable_get('clickpath_count', 5),
   );
-
+  
   $form['clickpath_title_length'] = array(
     '#type' => 'textfield',
     '#title' => t('Limit titles to a specific length'),
     '#default_value' => variable_get('clickpath_title_length', 20),
-  );
-
+  );  
+  
+  $options = array();
+  $states = array();
+  $types = node_type_get_types();
+  foreach($types as $type) {
+    $options[$type->type] = $type->name;
+  }
+  
+  $description = t("When you select 1 or more item, the saved paths will be limited to those content types. If you don't select any item, all content types will be saved.");
+  $form['clickpath_content_types'] = array(
+    '#type' => 'checkboxes',
+    '#title' => t('Limit saved paths to specific content types'),
+    '#default_value' => variable_get('clickpath_content_types', array()),
+    '#description' => $description,
+    '#options' => $options,
+  );  
+  
   $description = t("Enter one page per line as Drupal paths. The '*' character is a wildcard. Example paths are %blog for the blog page and %blog-wildcard for every personal blog. %front is the front page.", array('%blog' => 'blog', '%blog-wildcard' => 'blog/*', '%front' => '<front>'));
   $form['clickpath_ignore_list'] = array(
     '#type' => 'textarea',
     '#title' => t('Paths to ignore'),
     '#default_value' => variable_get('clickpath_ignore_list', "admin*\nnode/*/*"),
-    '#description' => $description,
+    '#description' => $description,   
   );
 
   $form['clickpath_home_title'] = array(
@@ -92,6 +108,16 @@ function clickpath_admin_settings_validate($form, &$form_state) {
 }
 
 /**
+ * Implementation of hook_theme().
+ */
+function clickpath_theme() {
+  $hooks['clickpath_recent_visits'] = array(
+    'variables' => array('items' => array()),
+  );
+  return $hooks;
+}
+
+/**
  * Implements hook_block_info().
  */
 function clickpath_block_info() {
@@ -114,7 +140,10 @@ function clickpath_block_view($delta = 0) {
     }
 
     $block['subject'] = t('Recently visited pages');
-    $block['content'] = theme('item_list', array('items' => $list));
+    $block['content'] = array(
+      '#theme' => 'clickpath_recent_visits',
+      '#items' => $list
+    );
     return $block;
   }
 }
@@ -160,24 +189,39 @@ function _clickpath_truncate_title($title) {
 }
 
 function clickpath_save_path($path) {
-  $path_pattern = variable_get('clickpath_ignore_list', "admin*\nnode/*/*");
-
-  // Match path if necessary
-  if (!empty($path_pattern)) {
-    $aliased_path = drupal_get_path_alias($path);
-    // Compare with the internal and path alias (if any).
-    $page_match = drupal_match_path($aliased_path, $path_pattern);
-    if ($aliased_path != $_GET['q']) {
-      $page_match = $page_match || drupal_match_path($path, $path_pattern);
+  
+  // Do we needs to limit the paths on content types?
+  $content_types = variable_get('clickpath_content_types', array());
+  if(!empty($content_types)) {
+    $node = menu_get_object('node');
+    if(!empty($node) && !empty($content_types[$node->type])) {
+      $page_match = TRUE;
+    } else{
+      $page_match = FALSE;
     }
-
-    // Since it's a list of patterns to ignore, flip it.
-    $page_match = !$page_match;
-  }
+  } 
+  
+  // We don't need a limitation based on content types so let's use the ignore pattern
   else {
-    $page_match = TRUE;
-  }
+    $path_pattern = variable_get('clickpath_ignore_list', "admin*\nnode/*/*");
 
+    // Match path if necessary
+    if (!empty($path_pattern)) {
+      $aliased_path = drupal_get_path_alias($path);
+      // Compare with the internal and path alias (if any).
+      $page_match = drupal_match_path($aliased_path, $path_pattern);
+      if ($aliased_path != $_GET['q']) {
+        $page_match = $page_match || drupal_match_path($path, $path_pattern);
+      }
+
+      // Since it's a list of patterns to ignore, flip it.
+      $page_match = !$page_match;
+    }
+    else {
+      $page_match = TRUE;
+    }    
+  }
+  
   if ($page_match) {
     if (_clickpath_path_is_frontpage($path)) {
       if ($home_title = variable_get('clickpath_home_title', 'Home')) {
@@ -203,4 +247,11 @@ function clickpath_save_path($path) {
     }
     $_SESSION['clickpath'] = $clickpath;
   }
+}
+/**
+ * Render the list of items for the recent visits.
+ */
+function theme_clickpath_recent_visits($variables) {
+  $element = $variables['items'];
+  return theme('item_list', array('items' => $element));
 }
\ No newline at end of file
