diff --git a/twitter.api.php b/twitter.api.php
index 0507b7d..ed6dc7e 100644
--- a/twitter.api.php
+++ b/twitter.api.php
@@ -35,3 +35,12 @@ function hook_twitter_status_save($status) {}
  * @see twitter_account_save()
  */
 function hook_twitter_account_save($account, $values) {}
+
+/**
+ * Notifies that the module is about to update a user timeline.
+ *
+ * @param $account
+ *   User account object.
+ * @see twitter_fetch_user_timeline()
+ */
+function hook_twitter_fetch_user_timeline($account) {}
diff --git a/twitter.inc b/twitter.inc
index 6c7d7ad..e8573f7 100644
--- a/twitter.inc
+++ b/twitter.inc
@@ -174,10 +174,16 @@ function twitter_set_status($twitter_account, $status) {
  */
 function twitter_fetch_user_timeline($id) {
   $account = twitter_account_load($id);
-  $since = db_result(db_query("SELECT MAX(twitter_id) FROM {twitter} WHERE screen_name = '%s'", $account->screen_name));
 
   // Connect to the Twitter's API.
   $twitter = twitter_connect();
+  if (!$twitter) {
+    return;
+  }
+  module_invoke_all('twitter_fetch_user_timeline', $account);
+  // Notify other modules that Twitter is about to fetch a user timeline
+  $since = db_result(db_query("SELECT MAX(twitter_id) FROM {twitter} WHERE screen_name = '%s'", $account->screen_name));
+
   $params = array();
   if ($since) {
     $params['since_id'] = $since;
