diff --git a/FeedsXPathParserBase.inc b/FeedsXPathParserBase.inc
index 8c53d79..e44a6ce 100644
--- a/FeedsXPathParserBase.inc
+++ b/FeedsXPathParserBase.inc
@@ -31,8 +31,8 @@ abstract class FeedsXPathParserBase extends FeedsParser {
   /**
    * Implements FeedsParser::parse().
    */
-  public function parse(FeedsSource $source, FeedsFetcherResult $fetcher_result) {
-    $source_config = $source->getConfigFor($this);
+  public function parse(FeedsSource $feeds_source, FeedsFetcherResult $fetcher_result) {
+    $source_config = $feeds_source->getConfigFor($this);
 
     if (empty($source_config)) {
       $source_config = $this->getConfig();
@@ -45,7 +45,7 @@ abstract class FeedsXPathParserBase extends FeedsParser {
     $mappings = $this->getOwnMappings();
     $this->rawXML = array_keys(array_filter($source_config['rawXML']));
     // Set link.
-    $fetcher_config = $source->getConfigFor($source->importer->fetcher);
+    $fetcher_config = $feeds_source->getConfigFor($feeds_source->importer->fetcher);
     $parser_result->link = $fetcher_config['source'];
 
     $this->xpath = new FeedsXPathParserDOMXPath($this->doc);
@@ -57,6 +57,11 @@ abstract class FeedsXPathParserBase extends FeedsParser {
     $all_nodes = $this->xpath->namespacedQuery($source_config['context'], NULL, 'context');
 
     foreach ($all_nodes as $node) {
+      // Invoke a hook to checke wether the node should be skipped.
+      if(in_array(true, module_invoke_all('feeds_xpathparser_filter_node', $feeds_source, $node,), true)) {
+        continue;
+      }
+
       $parsed_item = $variables = array();
       foreach ($source_config['sources'] as $source => $query) {
         // Variable substitution.
