diff --git a/src/cmd/fontsrv/osx.c b/src/cmd/fontsrv/osx.c
index d1a3183..f48f5b4 100644
--- a/src/cmd/fontsrv/osx.c
+++ b/src/cmd/fontsrv/osx.c
@@ -17,17 +17,31 @@
 
 extern void CGFontGetGlyphsForUnichars(CGFontRef, const UniChar[], const CGGlyph[], size_t);
 
+// In these fonts, it's too hard to distinguish U+2018 and U+2019,
+// so don't map the ASCII quotes there.
+// See https://github.com/9fans/plan9port/issues/86
+static char *skipquotemap[] = {
+	"Courier",
+	"Osaka",
+};
+
 int
-mapUnicode(int i)
+mapUnicode(char *name, int i)
 {
+	int j;
+
+	if(0xd800 <= i && i < 0xe0000) // surrogate pairs, will crash OS X libraries!
+		return 0xfffd;
+	for(j=0; j<nelem(skipquotemap); j++) {
+		if(strstr(name, skipquotemap[j]))
+			return i;
+	}
 	switch(i) {
 	case '\'':
 		return 0x2019;
 	case '`':
 		return 0x2018;
 	}
-	if(0xd800 <= i && i < 0xe0000) // surrogate pairs, will crash OS X libraries!
-		return 0xfffd;
 	return i;
 }
 
@@ -273,7 +287,7 @@
 		CFStringRef keys[] = { kCTFontAttributeName, kCTForegroundColorAttributeName };
 		CFTypeRef values[] = { font, white };
 
-		sprint(buf, "%C", (Rune)mapUnicode(i));
+		sprint(buf, "%C", (Rune)mapUnicode(name, i));
  		str = c2mac(buf);
  		
  		// See https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/CoreText_Programming/LayoutOperations/LayoutOperations.html#//apple_ref/doc/uid/TP40005533-CH12-SW2
@@ -298,7 +312,7 @@
 
 //		fprint(2, "printed %#x: %g %g\n", mapUnicode(i), p1.x, p1.y);
 		p1 = CGContextGetTextPosition(ctxt);
-		if(p1.x <= 0 || mapUnicode(i) == 0xfffd) {
+		if(p1.x <= 0 || mapUnicode(name, i) == 0xfffd) {
 			fc->width = 0;
 			fc->left = 0;
 			if(i == 0) {
