diff --git a/inc/actions.php b/inc/actions.php
index 01d1d29d492069865392a5b1a89ad2973d622b05..6ce67eb9aa3ec1bfe6164e75cd458b12859ececa 100644
--- a/inc/actions.php
+++ b/inc/actions.php
@@ -474,8 +474,7 @@ function act_edit($act){
                 $TEXT = rawWiki($ID,$REV);
             }
         } else {
-            $data = array($ID);
-            $TEXT = trigger_event('HTML_PAGE_FROMTEMPLATE',$data,'pageTemplate',true);
+            $TEXT = pageTemplate($ID);
         }
     }
 
diff --git a/inc/common.php b/inc/common.php
index 0d5efbee9176a7246c67dc396bb5a082ade5c41d..6601ae4781794358737d5b9603be620a549d4ea9 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -809,14 +809,16 @@ function rawWiki($id,$rev=''){
 /**
  * Returns the pagetemplate contents for the ID's namespace
  *
+ * @triggers COMMON_PAGE_FROMTEMPLATE
  * @author Andreas Gohr <andi@splitbrain.org>
  */
-function pageTemplate($data){
-    $id = $data[0];
+function pageTemplate($id){
     global $conf;
 
-    $path = dirname(wikiFN($id));
+    if (is_array($id)) $id = $id[0];
 
+    $path = dirname(wikiFN($id));
+    $tpl = '';
     if(@file_exists($path.'/_template.txt')){
         $tpl = io_readFile($path.'/_template.txt');
     }else{
@@ -830,15 +832,20 @@ function pageTemplate($data){
             $path = substr($path, 0, strrpos($path, '/'));
         }
     }
-    return isset($tpl) ? parsePageTemplate($tpl, $id) : '';
+    $data = compact('tpl', 'id');
+    trigger_event('COMMON_PAGE_FROMTEMPLATE', $data, 'parsePageTemplate', true);
+    return $data['tpl'];
 }
 
 /**
  * Performs common page template replacements
+ * This is the default action for COMMON_PAGE_FROMTEMPLATE
  *
  * @author Andreas Gohr <andi@splitbrain.org>
  */
-function parsePageTemplate($tpl, $id) {
+function parsePageTemplate($data) {
+    extract($data);
+
     global $USERINFO;
     global $conf;
 
diff --git a/inc/html.php b/inc/html.php
index ae3e56e0a77f7dee7bb56d3d0eeced3c7f80cb61..cfa4dbe3da2703643216bae4bdb36d5b4d4233b0 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1127,7 +1127,6 @@ function html_updateprofile(){
 /**
  * Preprocess edit form data
  *
- * @triggers HTML_PAGE_FROMTEMPLATE
  * @author   Andreas Gohr <andi@splitbrain.org>
  */
 function html_edit(){
diff --git a/lib/exe/xmlrpc.php b/lib/exe/xmlrpc.php
index a29a4061275a7ade62afe93664678de637a1865a..155812d22878d28f10c790f61d628e73212d9c29 100644
--- a/lib/exe/xmlrpc.php
+++ b/lib/exe/xmlrpc.php
@@ -290,8 +290,7 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer {
         }
         $text = rawWiki($id,$rev);
         if(!$text) {
-            $data = array($id);
-            return trigger_event('HTML_PAGE_FROMTEMPLATE',$data,'pageTemplate',true);
+            return pageTemplate($id);
         } else {
             return $text;
         }