diff -u -r -x 'unxlng*' scaddins/source/analysis/analysisadd.idl scaddins/source/analysis/analysisadd.idl
--- scaddins/source/analysis/analysisadd.idl	2005-09-09 00:19:42.000000000 +0100
+++ scaddins/source/analysis/analysisadd.idl	2006-09-27 11:48:20.000000000 +0100
@@ -360,7 +360,7 @@
         double getAccrint(
                     [in] com::sun::star::beans::XPropertySet xOptions,
                     [in] long Issue, [in] long FirstInterest, [in] long Settlement, [in] double Rate,
-                    [in] double Value, [in] long Frequency, [in] any Base )
+                    [in] any Value, [in] long Frequency, [in] any Base )
             raises( com::sun::star::lang::IllegalArgumentException );
 
         /// accrintm.
diff -u -r -x 'unxlng*' scaddins/source/analysis/analysis.hxx scaddins/source/analysis/analysis.hxx
--- scaddins/source/analysis/analysis.hxx	2005-09-09 00:18:34.000000000 +0100
+++ scaddins/source/analysis/analysis.hxx	2006-09-27 11:53:45.000000000 +0100
@@ -205,7 +205,7 @@
 
 	virtual double SAL_CALL		getAmordegrc( constREFXPS&, double fCost, sal_Int32 nDate, sal_Int32 nFirstPer, double fRestVal, double fPer, double fRate, const ANY& rOptBase ) THROWDEF_RTE_IAE;
 	virtual double SAL_CALL		getAmorlinc( constREFXPS&, double fCost, sal_Int32 nDate, sal_Int32 nFirstPer, double fRestVal, double fPer, double fRate, const ANY& rOptBase ) THROWDEF_RTE_IAE;
-	virtual double SAL_CALL		getAccrint( constREFXPS& xOpt, sal_Int32 nIssue, sal_Int32 nFirstInter, sal_Int32 nSettle, double fRate, double fVal, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE;
+	virtual double SAL_CALL		getAccrint( constREFXPS& xOpt, sal_Int32 nIssue, sal_Int32 nFirstInter, sal_Int32 nSettle, double fRate, const ANY& rVal, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE;
 	virtual double SAL_CALL		getAccrintm( constREFXPS& xOpt, sal_Int32 nIssue, sal_Int32 nSettle, double fRate, const ANY& rVal, const ANY& rOptBase ) THROWDEF_RTE_IAE;
 	virtual double SAL_CALL		getReceived( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fInvest, double fDisc, const ANY& rOptBase ) THROWDEF_RTE_IAE;
 	virtual double SAL_CALL		getDisc( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fPrice, double fRedemp, const ANY& rOptBase ) THROWDEF_RTE_IAE;
diff -u -r -x 'unxlng*' scaddins/source/analysis/financial.cxx scaddins/source/analysis/financial.cxx
--- scaddins/source/analysis/financial.cxx	2006-06-20 00:12:02.000000000 +0100
+++ scaddins/source/analysis/financial.cxx	2006-09-27 14:49:55.000000000 +0100
@@ -64,9 +64,11 @@
 
 
 double SAL_CALL AnalysisAddIn::getAccrint( constREFXPS& xOpt,
-	sal_Int32 nIssue, sal_Int32 /*nFirstInter*/, sal_Int32 nSettle, double fRate, double fVal, sal_Int32 nFreq,
-	const ANY& rOB ) THROWDEF_RTE_IAE
+	sal_Int32 nIssue, sal_Int32 /*nFirstInter*/, sal_Int32 nSettle, double fRate,
+	const ANY &rVal, sal_Int32 nFreq, const ANY& rOB ) THROWDEF_RTE_IAE
 {
+    double      fVal = aAnyConv.getDouble( xOpt, rVal, 1000.0 );
+
 	if( fRate <= 0.0 || fVal <= 0.0 || CHK_Freq || nIssue >= nSettle )
 		THROW_IAE;
 
