diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs
index 6544ce7e0b..e07eb1f63f 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs
@@ -115,7 +115,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
 			
 			PrintHelper.AdjustChildLocation(item,offset);
 			
-			BaseTextItem textItem = item as BaseTextItem;
+			//BaseTextItem textItem = item as BaseTextItem;
 			
 			IReportExpression epr = item as IReportExpression;
 			
@@ -129,26 +129,17 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
 						
 					} else 
 					{
-						evaluatedValue =  evaluator.Evaluate(textItem.Text);
+						evaluatedValue =  evaluator.Evaluate(epr.Text);
 					}
-					textItem.Text = evaluatedValue;
+					epr.Text = evaluatedValue;
 					
 				} catch (UnknownFunctionException ufe) {
 					
-					textItem.Text = GlobalValues.UnkownFunctionMessage(ufe.Message);
+					epr.Text = GlobalValues.UnkownFunctionMessage(ufe.Message);
 				}
 				
 			}
-			
-			
-			if (textItem != null) {
-				string str = textItem.Text;
-				textItem.Text = evaluator.Evaluate(textItem.Text);
-				textItem.Render(rpea);
-				textItem.Text = str;
-			} else {
-				item.Render (rpea);
-			}
+			item.Render (rpea);
 			item.Location = saveLocation;
 		}
 		
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/IExpression.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/IExpression.cs
index 05cf56982c..9ef0477463 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/IExpression.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/IExpression.cs
@@ -16,5 +16,6 @@ namespace ICSharpCode.Reports.Core
 	public interface IReportExpression
 	{
 		string Expression {get;set;}
+		string Text {get;set;}
 	}
 }
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
index a40239870e..4cc9ef92a6 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
@@ -230,8 +230,6 @@ namespace ICSharpCode.Reports.Core.Exporter
 					}
 					catch (UnknownFunctionException ufe)
 					{
-//						et.Text = String.Format(System.Globalization.CultureInfo.InvariantCulture,
-//					                      "!! Can't find <{0}>  !! ",ufe.Message);
 						et.Text = GlobalValues.UnkownFunctionMessage(ufe.Message);
 					}
 					finally 
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/IntegrationTests/GlobalFunctions.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/IntegrationTests/GlobalFunctions.cs
index a5a4e934ef..8862a9ee21 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/IntegrationTests/GlobalFunctions.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/IntegrationTests/GlobalFunctions.cs
@@ -101,7 +101,7 @@ namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.IntegrationTests
 		
 		
 		[Test]
-		[ExpectedException(typeof(InvalidOperationException))]
+		[ExpectedException(typeof(UnknownFunctionException))]
 		public void Throw_On_UnknownFunction()
 		{
 			const string expression = "=TotalWrongFunction()";