diff --git a/tconfpy.py b/tconfpy.py
index 788d62e..cd1db5e 100755
--- a/tconfpy.py
+++ b/tconfpy.py
@@ -6,7 +6,7 @@
 # Program Information
 
 PROGNAME = "tconfpy"
-RCSID = "$Id: tconfpy.py,v 1.142 2004/03/25 01:29:17 tundra Exp $"
+RCSID = "$Id: tconfpy.py,v 1.143 2004/03/25 04:42:50 tundra Exp $"
 VERSION = RCSID.split()[2]
 
 # Copyright Information
@@ -220,18 +220,22 @@
 
 # Literals
 
-eERROR      = "ERROR"
+eERROR        = "ERROR"
 
-eIFBAD      = "'%s' Or '%s' Missing" % (EQUIV, NOTEQUIV)
-eNOVARREF   = "Must Have At Least One Variable Reference"
-eSTARTUP    = "<Program Starting>"
+eIFBAD        = "'%s' Or '%s' Missing" % (EQUIV, NOTEQUIV)
+eBADDEFAULT   = "Type Of Default Value Does Not Agree With Type Declared"
+eBADLEGALVAL  = "Type Of One Or More LegalVals Does Not Agree With Type Declared"
+eBADMINMAX    = "Type Of Min Or Max Value Does Not Agree With Type Declared" 
+eNOTDESCRIPT  = "Invalid Descriptor Type"
+eNOVARREF     = "Must Have At Least One Variable Reference"
+eSTARTUP      = "<Program Starting>"
 
 # Messages
 
 Messages["eBADCOND"]     = FILENUM + "Bad '%s' Directive. %s"
 Messages["eBADSYNTAX"]   = FILENUM + "Syntax Error.  Statement Not In Known Form"
 Messages["eCONFOPEN"]    = FILENUM + "Cannot Open The File '%s'"
-Messages["eDESCRIPTBAD"] = "API Error: Bad Descriptor Passed For Variable '%s'"
+Messages["eDESCRIPTBAD"] = "API Error: %s For Variable '%s'"
 Messages["eENDIFEXTRA"]  = FILENUM + "'" + ENDIF + "' Without Matching Condition"
 Messages["eENDIFMISS"]   = FILENUM + "Missing %d" + " '%s' " % ENDIF + " Statement(s)"
 Messages["eEQUIVEXTRA"]  = FILENUM + "Only a single '%s' Or '%s' Operator Permitted" % (EQUIV, NOTEQUIV)
@@ -242,7 +246,7 @@
 Messages["eSTRINGSHORT"] = FILENUM + "String '%s' Shorter Than Min Allowed Length, %d"
 Messages["eTYPEBAD"]     = FILENUM + "Type Mismatch. '%s' Must Be Assigned Values Of Type %s Only"
 Messages["eVALSMALL"]    = FILENUM + "%d Is Smaller Than The Minimum Allowed, %d"
-Messages["eVALLARGE"]     = FILENUM + "%d Is Larger Than The Maximum Allowed, %d"
+Messages["eVALLARGE"]    = FILENUM + "%d Is Larger Than The Maximum Allowed, %d"
 Messages["eVARUNDEF"]    = FILENUM + "Attempt To Reference Undefined Variable '%s'"
 
 
@@ -377,6 +381,7 @@
         # Make sure we got a Var Descriptor Object
         if not isinstance(des, VarDescriptor):
             desok = False
+            detail = eNOTDESCRIPT
 
         # Check various entries for type agreement
 
@@ -384,14 +389,17 @@
 
         if des.Default and type(des.Default) != dt:
             desok = False
+            detail = eBADDEFAULT
 
         for lv in des.LegalVals:
             if type(lv) != dt:
                 desok = False
+                detail = eBADLEGALVAL
 
         for mm in (des.Min, des.Max):
             if mm and type(mm) != TYPE_INT:
                 desok = False
+                detail = eBADMINMAX
 
         # Update or error based on validity of descriptor
         if desok:
@@ -399,7 +407,7 @@
 
         # Invalid descriptor passed
         else:
-            ErrorMsg("eDESCRIPTBAD", sym)
+            ErrorMsg("eDESCRIPTBAD", (detail, sym))
             return (SymTable, ErrMsgs, WarnMsgs, DebugMsgs, LiteralLines)
 
     # Make sure the symbol table has a valid namespace