Bug fix for <c:out>

diff --git a/src/org/apache/taglibs/standard/tag/common/core/OutSupport.java b/src/org/apache/taglibs/standard/tag/common/core/OutSupport.java
index 7201a9d..c2e168d 100644
--- a/src/org/apache/taglibs/standard/tag/common/core/OutSupport.java
+++ b/src/org/apache/taglibs/standard/tag/common/core/OutSupport.java
@@ -119,13 +119,9 @@
     // evaluates 'value' and determines if the body should be evaluted
     public int doStartTag() throws JspException {
       try {
-	Object result;
-
-	result = value;
-
 	// print value if available; otherwise, try 'default'
-	if (result != null) {
-            out(pageContext, escapeXml, result.toString());
+	if (value != null) {
+            out(pageContext, escapeXml, value.toString());
 	    return SKIP_BODY;
 	} else {
 	    // if we don't have a 'default' attribute, just go to the body
diff --git a/src/org/apache/taglibs/standard/tag/el/core/OutTag.java b/src/org/apache/taglibs/standard/tag/el/core/OutTag.java
index b8d8541..3bc4b10 100644
--- a/src/org/apache/taglibs/standard/tag/el/core/OutTag.java
+++ b/src/org/apache/taglibs/standard/tag/el/core/OutTag.java
@@ -133,16 +133,20 @@
 
     /* Evaluates expressions as necessary */
     private void evaluateExpressions() throws JspException {
-	value = null;
 	try {
 	    value = ExpressionUtil.evalNotNull(
 	        "out", "value", value_, Object.class, this, pageContext);
-	} catch (Exception ex) {
-	    // explicitly allow 'null' for value and mask other errors per spec
+	} catch (NullAttributeException ex) {
+	    // explicitly allow 'null' for value
 	    value = null;
 	}
-	def = (String) ExpressionUtil.evalNotNull(
-	    "out", "default", default_, String.class, this, pageContext);
+	try { 
+	    def = (String) ExpressionUtil.evalNotNull(
+	        "out", "default", default_, String.class, this, pageContext);
+	} catch (NullAttributeException ex) {
+	    // explicitly allow 'null' for def
+	    def = null;
+	}
 	escapeXml = true;
 	Boolean escape = ((Boolean) ExpressionUtil.evalNotNull(
 	    "out", "escapeXml", escapeXml_, Boolean.class, this, pageContext));