diff --git a/FeedsSelfNodeProcessor.inc b/FeedsSelfNodeProcessor.inc
index b8327e7..6befc10 100644
--- a/FeedsSelfNodeProcessor.inc
+++ b/FeedsSelfNodeProcessor.inc
@@ -124,6 +124,7 @@ class FeedsSelfNodeProcessor extends FeedsNodeProcessor {
     $defaults = parent::configDefaults();
     $defaults['update_existing'] = FEEDS_UPDATE_EXISTING;
     $defaults['expire'] = FEEDS_EXPIRE_NEVER;
+    $defaults['import_on_create'] = FALSE;
     return $defaults;
   }
 
@@ -146,6 +147,13 @@ class FeedsSelfNodeProcessor extends FeedsNodeProcessor {
     $form['content_type']['#access'] = FALSE;
     $form['bundle']['#access'] = FALSE;
 
+    $form['import_on_create'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Import on create'),
+      '#description' => t('Check if import should be started as soon as the node is created.'),
+      '#default_value' => $this->config['import_on_create'],
+    );
+
     if (!$this->bundle()) {
       drupal_set_message(t('This importer must be attached to a <a href="@link">content type</a> for the Self Node Processor to work.', array('@link' => url('admin/structure/feeds/' . $this->id . '/settings'))), 'error', FALSE);
     }
diff --git a/feeds_selfnode_processor.module b/feeds_selfnode_processor.module
index 84f0e14..ad4215b 100644
--- a/feeds_selfnode_processor.module
+++ b/feeds_selfnode_processor.module
@@ -4,3 +4,42 @@
  * @file
  * Allows a feed node to populate fields on itself.
  */
+
+/**
+ * Implements hook_module_implements_alter().
+ */
+function feeds_selfnode_processor_module_implements_alter(&$implementations, $hook) {
+  if ($hook !== 'node_insert') {
+    return;
+  }
+
+  // Move feeds_selfnode_processor to the front so that it executes before
+  // Feeds.
+  $group = $implementations['feeds_selfnode_processor'];
+  unset($implementations['feeds_selfnode_processor']);
+  $implementations = array('feeds_selfnode_processor' => $group) + $implementations;
+}
+
+/**
+ * Implements hook_node_insert().
+ */
+function feeds_selfnode_processor_node_insert($node) {
+  // Bail early if possible.
+  if (!isset($node->feeds)) {
+    return;
+  }
+  if (!$importer_id = feeds_get_importer_id($node->type)) {
+    return;
+  }
+
+  $importer = feeds_importer($importer_id);
+
+  if (!$importer->processor instanceof FeedsSelfNodeProcessor) {
+    return;
+  }
+
+  // Start import if requested.
+  if ($importer->processor->config['import_on_create']) {
+    unset($node->feeds['suppress_import']);
+  }
+}
diff --git a/tests/FeedsSelfNodeProcessor.test b/tests/FeedsSelfNodeProcessor.test
index 2508bc4..3dc4aa6 100644
--- a/tests/FeedsSelfNodeProcessor.test
+++ b/tests/FeedsSelfNodeProcessor.test
@@ -19,7 +19,7 @@ class FeedsSelfNodeProcessorTest extends FeedsWebTestCase {
   }
 
   public function setUp() {
-    parent::setUp(array('feeds_selfnode_processor'));
+    parent::setUp(array('feeds_selfnode_processor', 'feeds_selfnode_processor_test'));
 
     $this->createImporterConfiguration('Syndication', 'syndication');
     $this->setPlugin('syndication', 'FeedsSelfNodeProcessor');
@@ -40,7 +40,7 @@ class FeedsSelfNodeProcessorTest extends FeedsWebTestCase {
     ));
   }
 
-  public function test() {
+  public function _test() {
     $edit = array(
       'title' => 'asfdasfd',
       'feeds[FeedsHTTPFetcher][source]' => $GLOBALS['base_url'] . '/' . drupal_get_path('module', 'feeds') . '/tests/feeds/developmentseed.rss2',
@@ -74,4 +74,54 @@ class FeedsSelfNodeProcessorTest extends FeedsWebTestCase {
     $this->assertEqual(0, db_query("SELECT COUNT(*) FROM {feeds_item}")->fetchField());
   }
 
+  public function testImportOnCreate() {
+    // The main thing we're testing.
+    $this->setSettings('syndication', 'FeedsSelfNodeProcessor', array('import_on_create' => 1));
+
+    // Allows us to download test-enabled urls.
+    variable_set('feeds_never_use_curl', TRUE);
+
+    // Create a CSV parser that will import self node processor items.
+    $this->createImporterConfiguration('Parent', 'parent');
+    $this->setSettings('parent', '', array('content_type' => ''));
+    $this->setPlugin('parent', 'FeedsCSVParser');
+    $this->setSettings('parent', 'FeedsNodeProcessor', array('bundle' => 'page'));
+
+    $this->addMappings('parent', array(
+      0 => array(
+        'source' => 'url',
+        'target' => 'title',
+      ),
+      1 => array(
+        'source' => 'url',
+        'target' => 'feeds_source',
+        'unique' => TRUE,
+      ),
+    ));
+
+    $this->importURL('parent', url('_feeds_selfnode_processor_test/csv', array('absolute' => TRUE)));
+    $this->assertText('Created 2 nodes.');
+    $this->assertText('Updated Open Atrium Translation Workflow: Two Way Translation Updates');
+    $this->assertText('Megint csak a balhé + Videó');
+
+    // Check that the nodes were imported.
+    $this->assertEqual('Open Atrium Translation Workflow: Two Way Translation Updates', node_load(1)->title);
+    $this->assertEqual('Megint csak a balhé + Videó', trim(node_load(2)->title));
+
+    $this->assertEqual(2, db_query("SELECT COUNT(*) FROM {feeds_selfnode_processor_item} WHERE id = 'syndication'")->fetchField());
+    $this->assertEqual(2, db_query("SELECT COUNT(*) FROM {node}")->fetchField());
+
+    // We have 2 nodes that still belong to the parent.
+    $this->assertEqual(2, db_query("SELECT COUNT(*) FROM {feeds_item} WHERE id = 'parent'")->fetchField());
+
+    // Import each individual node.
+    $this->drupalPost('node/1/import', array(), t('Import'));
+    $this->drupalPost('node/2/import', array(), t('Import'));
+
+    // We still have 2 nodes owned by parent.
+    $this->assertEqual(2, db_query("SELECT COUNT(*) FROM {feeds_item} WHERE id = 'parent'")->fetchField());
+    $this->assertEqual(2, db_query("SELECT COUNT(*) FROM {feeds_selfnode_processor_item} WHERE id = 'syndication'")->fetchField());
+    $this->assertEqual(2, db_query("SELECT COUNT(*) FROM {node}")->fetchField());
+  }
+
 }
diff --git a/tests/feeds_selfnode_processor_test.info b/tests/feeds_selfnode_processor_test.info
new file mode 100644
index 0000000..046e639
--- /dev/null
+++ b/tests/feeds_selfnode_processor_test.info
@@ -0,0 +1,5 @@
+name = Feeds Self Node Processor Tests
+package = Feeds
+dependencies[] = feeds_selfnode_processor
+core = 7.x
+hidden = TRUE
diff --git a/tests/feeds_selfnode_processor_test.module b/tests/feeds_selfnode_processor_test.module
new file mode 100644
index 0000000..e834831
--- /dev/null
+++ b/tests/feeds_selfnode_processor_test.module
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * @file
+ * Test module for feeds_selfnode_processor.
+ */
+
+/**
+ * Implements hook_menu().
+ */
+function feeds_selfnode_processor_test_menu() {
+  $items = array();
+
+  $items['_feeds_selfnode_processor_test/csv'] = array(
+    'page callback' => 'feeds_selfnode_processor_test_csv',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK,
+  );
+  return $items;
+}
+
+/**
+ * Page callback for _feeds_selfnode_processor_test/csv.
+ */
+function feeds_selfnode_processor_test_csv() {
+  // Add the header and 2 rss files.
+  $feeds_path = drupal_get_path('module', 'feeds');
+  $rss1 = $GLOBALS['base_url'] . '/' . $feeds_path . '/tests/feeds/developmentseed.rss2';
+  $rss2 = $GLOBALS['base_url'] . '/' . $feeds_path . '/tests/feeds/feed_without_guid.rss2';
+  print implode("\n", array('url', $rss1, $rss2));
+  drupal_exit();
+}
