diff --git a/notifications.admin.inc b/notifications.admin.inc
index 63bf18a..0ffb7d1 100644
--- a/notifications.admin.inc
+++ b/notifications.admin.inc
@@ -10,7 +10,7 @@ function notifications_admin_manage_subscriptions($form, &$form_state) {
   module_load_include('manage.inc', 'notifications');
   if (isset($form_state['values']['operation']) && $form_state['values']['operation'] == 'delete') {
    if ($selected = array_filter($form_state['values']['subscriptions'])) { // $form_state['values']['subscriptions']
-      $list = Notifications_Subscription_List::build_sids(array_keys($selected));
+      $list = Notifications_Subscription_List::build_sids(array_keys($selected), 'Notifications_Subscription_List');
       return notifications_subscription_list_form($form, $form_state, 'delete', $list);     
     }
   }
@@ -396,4 +396,4 @@ function theme_notifications_admin_subscription_list($variables) {
     }
     return theme('table', array('rows' => $rows));
   }
-}
\ No newline at end of file
+}
diff --git a/notifications.info b/notifications.info
index c2418ea..5776bb7 100644
--- a/notifications.info
+++ b/notifications.info
@@ -3,7 +3,7 @@ description = The basic notifications framework
 package = "Notifications"
 version = VERSION
 core = 7.x
-php = 5.3
+php = 5.2
 dependencies[] = messaging
 dependencies[] = trigger
 dependencies[] = messaging_template
diff --git a/notifications.list.inc b/notifications.list.inc
index c76795d..811ca09 100644
--- a/notifications.list.inc
+++ b/notifications.list.inc
@@ -245,9 +245,11 @@ class Notifications_Subscription_List implements Iterator {
   /**
    * Build subscription list instance from object or array of subscriptions
    */
-  public static function build_list($items) {
+  public static function build_list($items, $class = '') {
     // PHP 5.3.0 only, we may want to construct another class extending this one
-    $class = get_called_class();
+    if (empty($class) && function_exists('get_called_class')) {
+      $class = get_called_class();
+    }
     if (is_a($items, $class)) {
       return $items;
     }
@@ -260,9 +262,11 @@ class Notifications_Subscription_List implements Iterator {
   /**
    * Build subscription list from array of sids
    */
-  public static function build_sids($sids) {
+  public static function build_sids($sids, $class = '') {
     // PHP 5.3.0 only, we may want to construct another class extending this one
-    $class = get_called_class();
+    if (empty($class) && function_exists('get_called_class')) {
+      $class = get_called_class();
+    }
     $list = new $class();
     $list->load_multiple($sids);
     return $list;
@@ -650,4 +654,4 @@ class Notifications_Subscription_Table extends Notifications_Subscription_List {
     );    
   }
   
-}
\ No newline at end of file
+}
diff --git a/notifications.manage.inc b/notifications.manage.inc
index d961895..6c30ee1 100644
--- a/notifications.manage.inc
+++ b/notifications.manage.inc
@@ -79,7 +79,7 @@ function notifications_manage_subscriptions_form($conditions = array()) {
     ->execute()
     ->fetchCol();
     
-  $subscriptions = Notifications_Subscription_Table::build_sids($sids)
+  $subscriptions = Notifications_Subscription_Table::build_sids($sids, 'Notifications_Subscription_Table')
     ->set_header($header);
   // Only use a tableselect when the current user is able to perform any operations.
   if ($admin_access) {
diff --git a/notifications.module b/notifications.module
index 5bb490a..325ba2f 100644
--- a/notifications.module
+++ b/notifications.module
@@ -1276,7 +1276,7 @@ function notifications_subscription_form_submit($form, &$form_state) {
  * Form with subscription list
  */
 function notifications_subscription_list_form($form, &$form_state, $type, $subscriptions) {
-  $form = Notifications_Subscription_List::build_list($subscriptions)
+  $form = Notifications_Subscription_List::build_list($subscriptions, 'Notifications_Subscription_List')
     ->get_form($type, $form, $form_state);
   $form['#submit'][] = 'notifications_subscription_list_form_validate';
   $form['#validate'][] = 'notifications_subscription_list_form_submit';
@@ -1414,4 +1414,4 @@ function notifications_cron_queue_info() {
 function notifications_cron_queue_event_worker($event) {
   $event->send_all();
   $event->done();
-}
\ No newline at end of file
+}
diff --git a/notifications_account/notifications_account.pages.inc b/notifications_account/notifications_account.pages.inc
index 4f0b063..fe2ed73 100644
--- a/notifications_account/notifications_account.pages.inc
+++ b/notifications_account/notifications_account.pages.inc
@@ -69,7 +69,7 @@ function notifications_account_overview($account) {
 function notifications_account_manage_subscriptions_form($form, &$form_state, $account) {
   module_load_include('manage.inc', 'notifications');
   if (isset($form_state['values']['operation']) && $form_state['values']['operation'] == 'delete') {
-    $list = Notifications_Subscription_List::build_sids(array_filter($form_state['values']['subscriptions']));
+    $list = Notifications_Subscription_List::build_sids(array_filter($form_state['values']['subscriptions']), 'Notifications_Subscription_List');
     return notifications_subscription_list_form($form, $form_state, 'delete', $list);
   }
   $form = notifications_manage_subscriptions_filter_form();
@@ -100,7 +100,7 @@ function notifications_account_manage_subscriptions_form($form, &$form_state, $a
 function notifications_account_subscription_list_form($form, &$form_state, $type, $account) {
   if (isset($form_state['values']['op']) && $form_state['values']['op'] == t('Delete')) {
     if ($selected = array_filter($form_state['values']['subscriptions']['select'])) {
-      $list = Notifications_Subscription_List::build_sids(array_keys($selected));
+      $list = Notifications_Subscription_List::build_sids(array_keys($selected), 'Notifications_Subscription_List');
       return notifications_subscription_list_form($form, $form_state, 'delete', $list);     
     }
   }
