diff --git a/ordernumber_helper.php b/ordernumber_helper.php
index de0180aa30539484b2e1e28186cd5441845899ba..ecb977504026e623ad8567459619d00024f3e9e7 100644
--- a/ordernumber_helper.php
+++ b/ordernumber_helper.php
@@ -16,7 +16,7 @@ function trl($string) {
 
 class OrdernumberHelper {
 	static $_version = "0.1";
-	protected $_callbacks = array();
+	protected $callbacks = array();
 	public $_styles = array(
 		'counter-table-class' => "table-striped",
 		'counter-table-style' => "",
@@ -103,7 +103,7 @@ class OrdernumberHelper {
 	
 	public function __($string) {
 		if (isset($this->callbacks["translate"])) {
-			return $this->callbacks["translate"]($string);
+			return call_user_func_array($this->callbacks['translate'], func_get_args());
 		} else {
 			return $string;
 		}
@@ -142,7 +142,7 @@ class OrdernumberHelper {
 
 	public function urlPath($type, $file) {
 		if (isset($this->callbacks['urlPath'])) {
-			return $this->callbacks['urlPath']($type, $file);
+			return call_user_func_array($this->callbacks['urlPath'], func_get_args());
 		} else {
 			throw new Exception('No callback defined for urlPath(type, file)!');
 		}
@@ -150,13 +150,13 @@ class OrdernumberHelper {
 	
 	protected function replacementsCallback ($func, &$reps, $details, $nrtype) {
 		if (isset($this->callbacks[$func])) {
-			return $this->callbacks[$func]($reps, $details, $nrtype);
+			return call_user_func_array($this->callbacks[$func], array(&$reps, $details, $nrtype));
 		}
 	}
 
 	protected function getCounter($type, $countername, $default) {
 		if (isset($this->callbacks['getCounter'])) {
-			return $this->callbacks['getCounter']($type, $countername, $default);
+			return call_user_func_array($this->callbacks['getCounter'], func_get_args());
 		} else {
 			throw new Exception('No callback defined for getCounter(type, countername, default)!');
 		}
@@ -164,15 +164,15 @@ class OrdernumberHelper {
 	
 	protected function setCounter($type, $countername, $value) {
 		if (isset($this->callbacks['getCounter'])) {
-			return $this->callbacks['getCounter']($type, $countername, $value);
+			return call_user_func_array($this->callbacks['setCounter'], func_get_args());
 		} else {
 			throw new Exception('No callback defined for setCounter(type, countername, value)!');
 		}
 	}
 	
 	public function getAllCounters($type) {
-		if (isset($this->callbacks['getCounter'])) {
-			return $this->callbacks['getCounter']($type);
+		if (isset($this->callbacks['getAllCounters'])) {
+			return call_user_func_array($this->callbacks['getAllCounters'], func_get_args());
 		} else {
 			throw new Exception ('No callback defined for getAllCounters(type)!');
 		}
@@ -403,7 +403,6 @@ class OrdernumberHelper {
 		$format = $this->doReplacements($format, $reps);
 		$ctrsettings = $this->extractCounterSettings ($format, $type, $ctrsettings);
 
-// JFactory::getApplication()->enqueueMessage("<pre>Replacements for $type:".print_r($reps,1)."</pre>", 'error');
 		// Increment the counter only if the format contains a placeholder for it!
 		if (strpos($ctrsettings["${type}_format"], "#") !== false) {
 			$countername = $ctrsettings["${type}_counter"];