Peer punishment is widely lauded as a decentralized solution to the problem of social cooperation. However, experimental evidence of its effectiveness primarily stems from public good structures. This paper explores peer punishment in another structural setting: a system of generalized exchange. In a laboratory experiment, a repeated four-player prisoner’s dilemma is arranged either in a public good structure or in a circular network of generalized exchange. The experimental results demonstrate that the merits of peer punishment do not extend to generalized exchange. In the public good, peer punishment was primarily altruistic, was sensitive to costs, and promoted cooperation. In generalized exchange, peer punishment was also altruistic and relatively frequent, but did not increase cooperation. While the dense punishment network underlying the public good facilitates norm enforcement, generalized exchange decreases control over norm violators and reduces the capacity of peer punishment. I conclude that generalized exchange systems require stronger forms of punishment to sustain social cooperation.