diff --git a/feeds.api.php b/feeds.api.php
index 78c0cbd..82966da 100644
--- a/feeds.api.php
+++ b/feeds.api.php
@@ -188,6 +188,12 @@ function hook_feeds_after_save(FeedsSource $source, $entity, $item, $entity_id)
  */
 function hook_feeds_after_import(FeedsSource $source) {
   // See geotaxonomy module's implementation for an example.
+
+  // We can also check for an exception in this hook.
+  if (isset($source->exception)) {
+    watchdog('mymodule', 'An exception occurred during importing!', array(), WATCHDOG_ERROR);
+    mymodule_panic_reaction($source);
+  }
 }
 
 /**
diff --git a/includes/FeedsSource.inc b/includes/FeedsSource.inc
index f5475f1..ec8a6cf 100644
--- a/includes/FeedsSource.inc
+++ b/includes/FeedsSource.inc
@@ -179,6 +179,9 @@ class FeedsSource extends FeedsConfigurable {
   // Timestamp when this source was imported the last time.
   protected $imported;
 
+  // Holds an exception object in case an exception occurs during importing.
+  protected $exception;
+
   /**
    * Instantiate a unique object per class/id/feed_nid. Don't use
    * directly, use feeds_source() instead.
@@ -379,9 +382,16 @@ class FeedsSource extends FeedsConfigurable {
 
       // Process.
       $this->importer->processor->process($this, $parser_result);
+
+      // Import finished without exceptions, so unset any potentially previously
+      // recorded exceptions.
+      unset($this->exception);
     }
     catch (Exception $e) {
       // $e is stored and re-thrown once we've had a chance to log our progress.
+      // Set the exception so that other modules can check if an exception
+      // occurred in hook_feeds_after_import().
+      $this->exception = $e;
     }
     $this->releaseLock();
 
