We estimate effective spreads and round-trip transaction costs at the Berlin Stock Exchange for the period 1892-1913 using daily stock market returns for a sample of 27 stocks. Our results show that transaction costs at the main stock exchange in a bank-based financial system at the turn of the 20th century were quite low and about comparable to transaction costs in modern markets. Nonetheless, transaction costs varied substantially over time and across securities, whereby the cross-sectional variation could be substantially explained by firm size and time variation by crises. Furthermore, we find surprising evidence that transaction costs decrease the expected excess returns. Thereby size and momentum premia are of expected signs while market beta has no significant influence on the cross-sectional return variation.