c5b8fa
diff -up Tk-804.028/pTk/mTk/generic/tkConfig.c.seg Tk-804.028/pTk/mTk/generic/tkConfig.c
c5b8fa
--- Tk-804.028/pTk/mTk/generic/tkConfig.c.seg	2008-03-11 23:29:39.000000000 -0400
c5b8fa
+++ Tk-804.028/pTk/mTk/generic/tkConfig.c	2008-03-11 23:28:09.000000000 -0400
c5b8fa
@@ -1210,11 +1210,11 @@ GetOptionFromObj(interp, objPtr, tablePt
c5b8fa
      * First, check to see if the object already has the answer cached.
c5b8fa
      */
c5b8fa
 
c5b8fa
-    if (objPtr->typePtr == &tkOptionObjType) {
c5b8fa
+/*    if (objPtr->typePtr == &tkOptionObjType) {
c5b8fa
         if (objPtr->internalRep.twoPtrValue.ptr1 == (VOID *) tablePtr) {
c5b8fa
             return (Option *) objPtr->internalRep.twoPtrValue.ptr2;
c5b8fa
         }
c5b8fa
-    }
c5b8fa
+    }*/
c5b8fa
 
c5b8fa
     /*
c5b8fa
      * The answer isn't cached.
c5b8fa
@@ -2277,9 +2277,15 @@ Tk_GetOptionValue(interp, recordPtr, opt
c5b8fa
     if (optionPtr == NULL) {
c5b8fa
 	return NULL;
c5b8fa
     }
c5b8fa
+
c5b8fa
+    if (optionPtr->specPtr == NULL) {
c5b8fa
+	return NULL;
c5b8fa
+    }
c5b8fa
+
c5b8fa
     if (optionPtr->specPtr->type == TK_OPTION_SYNONYM) {
c5b8fa
 	optionPtr = optionPtr->extra.synonymPtr;
c5b8fa
     }
c5b8fa
+
c5b8fa
     if (optionPtr->specPtr->objOffset >= 0) {
c5b8fa
 	resultPtr = *((Tcl_Obj **) (recordPtr + optionPtr->specPtr->objOffset));
c5b8fa
 	if (resultPtr == NULL) {