 src/bltScrollbar.c | 2 +-
 src/bltTed.c       | 6 +++---
 src/bltVecMath.c   | 8 ++++----
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/bltScrollbar.c b/src/bltScrollbar.c
index 69662de..731e37b 100644
--- a/src/bltScrollbar.c
+++ b/src/bltScrollbar.c
@@ -534,7 +534,7 @@ ScrollbarWidgetCmd(clientData, interp, argc, argv)
 	} else {
 	    fraction = ((double)pixels / (double)barWidth);
 	}
-	sprintf(interp->result, "%g", fraction);
+	sprintf(Tcl_GetStringResult(interp), "%g", fraction);
     } else if ((c == 'f') && (strncmp(argv[1], "fraction", length) == 0)) {
 	int x, y, pos, barWidth;
 	double fraction;
diff --git a/src/bltTed.c b/src/bltTed.c
index 64c43e8..832ef9c 100644
--- a/src/bltTed.c
+++ b/src/bltTed.c
@@ -1504,7 +1504,7 @@ EditOp(dataPtr, interp, argc, argv)
 	tablePtr->flags |= ARRANGE_PENDING;
 	Tcl_DoWhenIdle(tablePtr->arrangeProc, tablePtr);
     }
-    interp->result = Tk_PathName(tedPtr->tkwin);
+    Tcl_SetResult(interp, (char*)Tk_PathName(tedPtr->tkwin), TCL_VOLATILE);
     tedPtr->flags |= LAYOUT_PENDING;
     EventuallyRedraw(tedPtr);
     return TCL_OK;
@@ -1678,7 +1678,7 @@ SelectOp(dataPtr, interp, argc, argv)
 	    tedPtr->activeRectArr[4].width = grip - 1;
 	    tedPtr->activeRectArr[4].height = grip - 1;
 
-	    interp->result = Tk_PathName(entryPtr->tkwin);
+	    Tcl_SetResult(interp, (char*)Tk_PathName(entryPtr->tkwin), TCL_VOLATILE);
 	    active = 1;
 	    break;
 	}
@@ -1751,7 +1751,7 @@ RepOp(dataPtr, interp, argc, argv)
 	tablePtr->flags |= ARRANGE_PENDING;
 	Tcl_DoWhenIdle(tablePtr->arrangeProc, tablePtr);
     }
-    interp->result = Tk_PathName(tedPtr->tkwin);
+    Tcl_SetResult(interp, (char*)Tk_PathName(tedPtr->tkwin), TCL_VOLATILE);
     tedPtr->flags |= LAYOUT_PENDING;
     EventuallyRedraw(tedPtr);
     return TCL_OK;
diff --git a/src/bltVecMath.c b/src/bltVecMath.c
index dc37af8..5117f63 100644
--- a/src/bltVecMath.c
+++ b/src/bltVecMath.c
@@ -764,20 +764,20 @@ MathError(interp, value)
     if ((errno == EDOM) || (value != value)) {
 	Tcl_AppendResult(interp, "domain error: argument not in valid range",
 	    (char *)NULL);
-	Tcl_SetErrorCode(interp, "ARITH", "DOMAIN", interp->result,
+	Tcl_SetErrorCode(interp, "ARITH", "DOMAIN", Tcl_GetStringResult(interp),
 	    (char *)NULL);
     } else if ((errno == ERANGE) || IS_INF(value)) {
 	if (value == 0.0) {
 	    Tcl_AppendResult(interp, 
 			     "floating-point value too small to represent",
 		(char *)NULL);
-	    Tcl_SetErrorCode(interp, "ARITH", "UNDERFLOW", interp->result,
+	    Tcl_SetErrorCode(interp, "ARITH", "UNDERFLOW", Tcl_GetStringResult(interp),
 		(char *)NULL);
 	} else {
 	    Tcl_AppendResult(interp, 
 			     "floating-point value too large to represent",
 		(char *)NULL);
-	    Tcl_SetErrorCode(interp, "ARITH", "OVERFLOW", interp->result,
+	    Tcl_SetErrorCode(interp, "ARITH", "OVERFLOW", Tcl_GetStringResult(interp),
 		(char *)NULL);
 	}
     } else {
@@ -786,7 +786,7 @@ MathError(interp, value)
 	sprintf(buf, "%d", errno);
 	Tcl_AppendResult(interp, "unknown floating-point error, ",
 	    "errno = ", buf, (char *)NULL);
-	Tcl_SetErrorCode(interp, "ARITH", "UNKNOWN", interp->result,
+	Tcl_SetErrorCode(interp, "ARITH", "UNKNOWN", Tcl_GetStringResult(interp),
 	    (char *)NULL);
     }
 }
