Index: trunk/Ohana/src/libkapa/src/DrawRotString.c
===================================================================
--- trunk/Ohana/src/libkapa/src/DrawRotString.c	(revision 30602)
+++ trunk/Ohana/src/libkapa/src/DrawRotString.c	(revision 30603)
@@ -27,5 +27,5 @@
   unsigned char *bitmap;
   char *currentname, basename[64]; 
-  int i, dy, dx, N, X, Y, code;
+  int i, dy, dx, N, X, Y, code, protect;
   int dX, Xoff, dY, Yoff, YoffBase;
   int currentsize, basesize;
@@ -63,4 +63,5 @@
 
   code = FALSE;
+  protect = FALSE;
 
   YoffBase = Yoff;
@@ -70,6 +71,10 @@
     if ((N < 0) || (N >= NROTCHARS)) continue;
 
+    if (N == 39) { // single-quote
+      protect = protect ? FALSE : TRUE;
+    } 
+
     /* check for special characters */
-    if (!code) {
+    if (!code && !protect) {
       if (N == 94) {
 	SetRotFont (currentname, (int)(0.8*currentsize));
Index: trunk/Ohana/src/libkapa/src/PSRotFont.c
===================================================================
--- trunk/Ohana/src/libkapa/src/PSRotFont.c	(revision 30602)
+++ trunk/Ohana/src/libkapa/src/PSRotFont.c	(revision 30603)
@@ -7,5 +7,5 @@
 
   char *segment, basename[64], *currentname;
-  int i, N, code;
+  int i, N, code, protect;
   int dX, dY, Xoff, Yoff, X, Y, Nseg, NSEG, YoffBase;
   double cs, sn, fscale, currentscale;
@@ -60,4 +60,6 @@
 
   code = FALSE;
+  protect = FALSE;
+
   YoffBase = 0;
   /* accumulate string segments with common state */
@@ -66,6 +68,10 @@
     if ((N < 0) || (N >= NROTCHARS)) continue;
 
+    if (N == 39) { // single-quote
+      protect = protect ? FALSE : TRUE;
+    } 
+
     /* check for special characters */
-    if (!code) {
+    if (!code && !protect) {
       /* superscript character (^) */
       if (N == 94) {
Index: trunk/Ohana/src/libkapa/src/bDrawRotFont.c
===================================================================
--- trunk/Ohana/src/libkapa/src/bDrawRotFont.c	(revision 30602)
+++ trunk/Ohana/src/libkapa/src/bDrawRotFont.c	(revision 30603)
@@ -14,5 +14,5 @@
   unsigned char *bitmap;
   char *currentname, basename[64]; 
-  int i, dy, dx, N, X, Y, code;
+  int i, dy, dx, N, X, Y, code, protect;
   int dX, Xoff, dY, Yoff, YoffBase;
   int currentsize, basesize;
@@ -53,4 +53,5 @@
 
   code = FALSE;
+  protect = FALSE;
 
   YoffBase = Yoff;
@@ -60,6 +61,10 @@
     if ((N < 0) || (N >= NROTCHARS)) continue;
 
+    if (N == 39) { // single-quote
+      protect = protect ? FALSE : TRUE;
+    } 
+
     /* check for special characters */
-    if (!code) {
+    if (!code && !protect) {
       if (N == 94) {
 	SetRotFont (currentname, (int)(0.8*currentsize));
