diff --git a/includes/handlers/pay_form.inc b/includes/handlers/pay_form.inc
index 90e3fd4..f94e7b5 100644
--- a/includes/handlers/pay_form.inc
+++ b/includes/handlers/pay_form.inc
@@ -1,4 +1,5 @@
 <?php
+require_once DRUPAL_ROOT . '/' . drupal_get_path('module', 'pay') . '/includes/handlers/pay.inc';
 
 /**
  * @file
diff --git a/includes/pay.menu.inc b/includes/pay.menu.inc
index 1d4f384..0e95c2f 100644
--- a/includes/pay.menu.inc
+++ b/includes/pay.menu.inc
@@ -63,7 +63,7 @@ function pay_menu_menu() {
     ),
     'pay/transaction/pay/%pay_transaction' => array(
       'title' => 'Transaction details',
-      'page callback' => 'theme',
+      'page callback' => 'pay_transaction_page',
       'page arguments' => array('pay_transaction', 3),
       'access arguments' => array('administer payments for any form'),
     ),
diff --git a/pay.module b/pay.module
index 5f36c3d..2841315 100755
--- a/pay.module
+++ b/pay.module
@@ -205,6 +205,7 @@ function pay_handlers($type, $handler_name = NULL, $refresh = FALSE) {
  */
 function pay_load_handler($type, $name) {
   static $cache = array();
+  $cache = array();
 
   if (!isset($cache[$type])) {
     // Base classes for handlers.
@@ -404,12 +405,13 @@ function pay_submit($form, &$form_state) {
 
 /**
  * A helper function for FAPI validate/submit callbacks.
- * Locates any pay elements in a form and calls thier handler code.
+ * Locates any pay elements in a form and calls their handler code.
  */
 function pay_form_callback($callback, &$form, &$form_state) {
   if (isset($form['#pay'])) {
     foreach ($form['#pay'] as $key => $item) {
       if ($pay = pay_load_object($item['type'], $item)) {
+        $debug_array[] = $pay;
         $func = isset($item['form']) ? $item['form'] : 'form';
         $func .= '_' . $callback;
         if (method_exists($pay, $func)) {
@@ -629,3 +631,11 @@ function pay_transaction_action_title($pay_transaction, $action) {
     return t('@title transaction', array('@title' => $info['title']));
   }
 }
+
+/**
+ * Helper function to convert a $pay_transaction to an array for theme()
+ * Callback for pay/transaction/%pay_transaction
+ */
+function pay_transaction_page($hook, $pay_transaction){
+  return theme($hook, (array)$pay_transaction);
+}
diff --git a/theme/pay.theme.inc b/theme/pay.theme.inc
index 7650a72..14be6d8 100644
--- a/theme/pay.theme.inc
+++ b/theme/pay.theme.inc
@@ -91,7 +91,8 @@ function theme_pay_form_link($variables) {
  *
  */
 function template_preprocess_pay_transaction(&$variables) {
-  $pay_transaction = $variables['pay_transaction'];
+
+  $pay_transaction = pay_transaction_load($variables['pxid']);
   $variables['pay_form'] = pay_form_load($pay_transaction->pfid);
 
   $variables['date'] = format_date($pay_transaction->created, 'short');
@@ -189,7 +190,7 @@ function theme_pay_activity_list($variables) {
     t('User'),
     t('Method'),
     t('Total'),
-    t('Balance'),
+  //t('Balance'),
     t('Comment'),
   );
 
@@ -210,7 +211,7 @@ function theme_pay_activity_list($variables) {
       $account->uid ? l($account->name, 'user/' . $account->uid) : '-',
       $activity->pay_method()->title(),
       theme('pay_money', array('value' => $activity->total, 'currency' => $currency)),
-      theme('pay_money', array('value' => $activity->balance(), 'currency' => $currency)),
+    //theme('pay_money', array('value' => $activity->balance(), 'currency' => $currency)),
       $comment,
     );
 
