def dedupe_tweets(tweet_list):
    """
    Return de-duped list of tweets by throwing out retweets.  Assumes
    list of tweets is in reverse chronological order.
    """
    tweets = []
    id_set = set()
    
    tweet_list.sort(key=lambda x: x['created_at'])
    for tweet in tweet_list:
        if tweet.id_str in id_set:
            continue
        id_set.add(tweet.id_str)
   
        try:
            rt_id_str = tweet.retweeted_status.id_str
            if rt_id_str in id_set:
                continue
            id_set.add(rt_id_str)
        except AttributeError:
            pass
                                            
        tweets.append(tweet)
    
    return list(reversed(tweets))