diff --git a/inc/actions.php b/inc/actions.php
index e61b1add31e87cd9d364aa37ca31734ce9767f19..900409a908be50bf9af859367c6fc083a50e71d9 100644
--- a/inc/actions.php
+++ b/inc/actions.php
@@ -589,10 +589,14 @@ function act_subscription($act){
                                     hsc($INFO['userinfo']['name']),
                                     prettyprint_id($target)));
     }
-    $INFO['subscribed'] = get_info_subscribed();
     msg(sprintf($lang["subscr_{$action}_success"], hsc($INFO['userinfo']['name']),
                 prettyprint_id($target)), 1);
-    return $act;
+    global $ID;
+    act_redirect($ID, $act);
+
+    // Assure that we have valid data if act_redirect somehow fails.
+    $INFO['subscribed'] = get_info_subscribed();
+    return 'show';
 }
 
 /**