diff --git a/src/report/standard-reports/advanced-portfolio.scm b/src/report/standard-reports/advanced-portfolio.scm
index 27a478b..5adb2a7 100644
--- a/src/report/standard-reports/advanced-portfolio.scm
+++ b/src/report/standard-reports/advanced-portfolio.scm
@@ -395,7 +395,8 @@
 	       (gnc:report-percent-done (* 100 (/ work-done work-to-do)))
 	       
 	       (let* ((parent (xaccSplitGetParent split))
-		      (txn-date (gnc-transaction-get-date-posted parent)))
+		      (txn-date (gnc-transaction-get-date-posted parent))
+		      (txn-currency (xaccTransGetCurrency parent)))
 		 
 		 ;; we must have a good commod-currency before we go any
 		 ;; farther as the rest relies on it. If we don't have a
@@ -460,9 +461,9 @@
 				 ((split-account-type? s ACCT-TYPE-EXPENSE)
 				  (if (equal? current (xaccSplitGetAccount (xaccSplitGetOtherSplit s)))
 				      ;; "donated shares"
-				      (moneyoutcoll 'add commod-currency split-value)
+				      (moneyoutcoll 'add txn-currency split-value)
 				      ;; brokerage fees
-				      (brokeragecoll 'add commod-currency split-value)))
+				      (brokeragecoll 'add txn-currency split-value)))
 
 				 ;; in theory, income is a dividend of
 				 ;; some kind. it could also be
@@ -474,7 +475,7 @@
 				 ;; with these to differentiate them
 				 ;; :(
 				 ((split-account-type? s ACCT-TYPE-INCOME)
-				  (dividendcoll 'add commod-currency (gnc-numeric-neg split-value)))
+				  (dividendcoll 'add txn-currency (gnc-numeric-neg split-value)))
 
 				 ;; we have units, handle all cases of that
 				 ((not (gnc-numeric-zero-p split-units))
@@ -489,15 +490,15 @@
 					  ;; adjust the basis
 					  (set! basis-list (basis-builder basis-list split-units (gnc:gnc-monetary-amount 
 												  (exchange-fn (gnc:make-gnc-monetary 
-														commod-currency split-value) 
+														txn-currency split-value) 
 													       currency)) basis-method))
 					  ;; adjust moneyin/out
 					  (if (gnc-numeric-positive-p split-value)
 					      ;; but only adjust moneyin if it's not a spinoff
 					      (if (or (null? (xaccSplitGetOtherSplit s))
 						      (not (gnc-numeric-zero-p (xaccSplitGetAmount (xaccSplitGetOtherSplit s)))))
-					       (moneyincoll 'add commod-currency split-value))
-					      (moneyoutcoll 'add commod-currency (gnc-numeric-neg split-value)))
+					       (moneyincoll 'add txn-currency split-value))
+					      (moneyoutcoll 'add txn-currency (gnc-numeric-neg split-value)))
 					  )
 					)
 				    (gnc:debug  "coming out of basis list " basis-list)
@@ -511,7 +512,7 @@
 				  (if (same-account? current (xaccSplitGetAccount s))
 				      (set! basis-list (basis-builder basis-list split-units (gnc:gnc-monetary-amount 
 											      (exchange-fn (gnc:make-gnc-monetary 
-													    commod-currency split-value) 
+													    txn-currency split-value) 
 													   currency)) basis-method))
 				      )
 				  )
