Protocols for opportunistic networks have until this point focused primarily on overcoming the partitioning of those networks. However, emerging studies show that opportunistic networks also exhibit considerable clustering. Neither current store-carry-forward protocols nor path-based protocols are equipped to effectively handle both of these network characteristics. In response, we present the design of light-weight clustering techniques that allow our protocol, Mercury, to perform well in both partitioned and clustered environments by integrating store-carry-forward techniques with path-based techniques when appropriate. Our evaluations show that Mercury can significantly increase delivery ratio (from 13% to 80% over existing protocols with real life traces) while lowering average latency considerably.