diff --git a/plugins/FeedsUserProcessor.inc b/plugins/FeedsUserProcessor.inc
index 47d26e5..6aaec50 100644
--- a/plugins/FeedsUserProcessor.inc
+++ b/plugins/FeedsUserProcessor.inc
@@ -99,6 +99,10 @@ class FeedsUserProcessor extends FeedsProcessor {
    * Delete multiple user accounts.
    */
   protected function entityDeleteMultiple($uids) {
+    // Prevent user 1 from being deleted.
+    if (in_array(1, $uids)) {
+      $uids = array_diff($uids, array(1));
+    }
     user_delete_multiple($uids);
   }
 
@@ -241,6 +245,19 @@ class FeedsUserProcessor extends FeedsProcessor {
   }
 
   /**
+   * Overrides FeedsProcessor::initEntitiesToBeRemoved().
+   *
+   * Removes user 1 from the list of entities to be removed.
+   */
+  protected function initEntitiesToBeRemoved(FeedsSource $source, FeedsState $state) {
+    parent::initEntitiesToBeRemoved($source, $state);
+
+    if (isset($state->removeList[1])) {
+      unset($state->removeList[1]);
+    }
+  }
+
+  /**
    * Overrides FeedsProcessor::clean().
    *
    * Block users instead of deleting them.
diff --git a/tests/feeds_processor_user.test b/tests/feeds_processor_user.test
index 4bc82d5..8249cd9 100644
--- a/tests/feeds_processor_user.test
+++ b/tests/feeds_processor_user.test
@@ -17,11 +17,8 @@ class FeedsCSVtoUsersTest extends FeedsWebTestCase {
     );
   }
 
-  /**
-   * Test node creation, refreshing/deleting feeds and feed items.
-   */
-  public function test() {
-    // Create an importer.
+  public function setUp() {
+    parent::setUp();
     $this->createImporterConfiguration('User import', 'user_import');
 
     // Set and configure plugins.
@@ -57,7 +54,13 @@ class FeedsCSVtoUsersTest extends FeedsWebTestCase {
       'content_type' => '',
     );
     $this->drupalPost('admin/structure/feeds/user_import/settings', $edit, 'Save');
+  }
 
+  /**
+   * Test user creation, refreshing/deleting feeds and feed items.
+   */
+  public function test() {
+    // Create an importer.
     // Create roles and assign one of them to the users to be imported.
     $manager_rid = $this->drupalCreateRole(array('access content'), 'manager');
     $admin_rid = $this->drupalCreateRole(array('access content'), 'administrator');
@@ -134,4 +137,76 @@ class FeedsCSVtoUsersTest extends FeedsWebTestCase {
     $this->assertText('Failed importing 2 user');
   }
 
+  /**
+   * Tests if user 1 can not be deleted using the delete non-existing feature.
+   */
+  public function testUser1ProtectionWhenDeletingNonExistent() {
+    // Set to delete non-existing users.
+    $this->setSettings('user_import', 'FeedsFileFetcher', array());
+    $this->setSettings('user_import', 'FeedsUserProcessor', array(
+      'update_existing' => 2,
+      'update_non_existent' => 'delete',
+    ));
+
+    // Set mail address of user 1 to "fester@example.com". An user with this
+    // mail address is missing in the feed later.
+    $account = user_load(1);
+    $edit['mail'] = 'fester@example.com';
+    user_save($account, $edit);
+
+    // Import the first file, which contains the mail address of user 1.
+    $this->importFile('user_import', $this->absolutePath() . '/tests/feeds/users.csv');
+    $this->assertText('Updated 1 user');
+    // Ensure the username of user 1 was updated.
+    $account = user_load(1, TRUE);
+    $this->assertEqual('Fester', $account->name);
+
+    // Now import the second file, where the mail address of user 1 is missing.
+    $this->importFile('user_import', $this->absolutePath() . '/tests/feeds/users2.csv');
+    $this->assertNoText('Removed 1 user');
+
+    // Ensure that user 1 still exists.
+    $account = db_select('users')
+      ->fields('users')
+      ->condition('uid', 1)
+      ->execute()
+      ->fetch();
+    $this->assertTrue(is_object($account), 'User 1 still exists.');
+  }
+
+  /**
+   * Tests if user 1 can not be deleted using the delete form.
+   */
+  public function testUser1ProtectionWhenDeletingAll() {
+    // Set to delete non-existing users.
+    $this->setSettings('user_import', 'FeedsFileFetcher', array());
+    $this->setSettings('user_import', 'FeedsUserProcessor', array(
+      'update_existing' => 2,
+      'update_non_existent' => 'delete',
+    ));
+
+    // Set mail address of user 1 to "fester@example.com". An user with this
+    // mail address is missing in the feed later.
+    $account = user_load(1);
+    $edit['mail'] = 'fester@example.com';
+    user_save($account, $edit);
+
+    // Import the first file, which contains the mail address of user 1.
+    $this->importFile('user_import', $this->absolutePath() . '/tests/feeds/users.csv');
+    $this->assertText('Updated 1 user');
+    // Ensure the username of user 1 was updated.
+    $account = user_load(1, TRUE);
+    $this->assertEqual('Fester', $account->name);
+
+    // Now delete all items. User 1 should not be deleted.
+    $this->drupalPost('import/user_import/delete-items', array(), 'Delete');
+
+    // Ensure that user 1 still exists.
+    $account = db_select('users')
+      ->fields('users')
+      ->condition('uid', 1)
+      ->execute()
+      ->fetch();
+    $this->assertTrue(is_object($account), 'User 1 still exists.');
+  }
 }
