diff --git a/plugins/FeedsHTTPFetcher.inc b/plugins/FeedsHTTPFetcher.inc
index 27dd013..7c0e149 100644
--- a/plugins/FeedsHTTPFetcher.inc
+++ b/plugins/FeedsHTTPFetcher.inc
@@ -163,7 +163,9 @@ class FeedsHTTPFetcher extends FeedsFetcher {
    * Override sourceSave() - subscribe to hub.
    */
   public function sourceSave(FeedsSource $source) {
-    if ($this->config['use_pubsubhubbub']) {
+    $config = $source->getConfigFor($this);
+    $source_url = $config['source'];
+    if ($this->config['use_pubsubhubbub'] && !PushSubscription::exists($source_url)) {
       $this->subscribe($source);
     }
   }
@@ -234,6 +236,19 @@ class PuSHSubscription implements PuSHSubscriptionInterface {
   }
 
   /**
+   * Verifies if a subscription to a topic exists
+   */
+  public static function exists($topic) {
+    $query = db_query("SELECT * FROM {feeds_push_subscriptions} WHERE topic = :topic AND status = :status", array(':topic' => $topic, ':status' => 'subscribed'));
+    if ($query->fetchObject()) {
+      return TRUE;
+    }
+    else {
+      return FALSE;
+    }
+  }
+
+  /**
    * Create a subscription.
    */
   public function __construct($domain, $subscriber_id, $hub, $topic, $secret, $status = '', $post_fields = '') {
