diff --git a/Makefile b/Makefile
index 3512a6daf600224b43ef113384b66fe279a81b08..f131ff49812251d2d11ec299858c8936d84eab5f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 BASE=ordernumber
 PLUGINTYPE=vmshopper
-VERSION=4.0.4
+VERSION=4.0.5
 
 PLUGINFILES=$(BASE).php ordernumber_helper_joomla.php $(BASE).script.php $(BASE).xml index.html library/
 
diff --git a/ordernumber.php b/ordernumber.php
index 287b1cfc9f2e701fd2f8c81b61492550abecf129..b555ff5215889e03c15570f8c0874add682d0636 100644
--- a/ordernumber.php
+++ b/ordernumber.php
@@ -9,10 +9,12 @@
 if ( !defined( 'ABSPATH' ) and !defined('_JEXEC') ) { 
 	die( 'Direct Access to ' . basename( __FILE__ ) . ' is not allowed.' ) ;
 }
+if (!class_exists( 'VmConfig' )) {
+	require(JPATH_ADMINISTRATOR .'/components/com_virtuemart/helpers/config.php');
+	VmConfig::loadConfig();
+}
 if (!class_exists('vmShopperPlugin')) 
     require(JPATH_VM_PLUGINS . DS . 'vmshopperplugin.php');
-// if (!class_exists( 'VmConfig' )) 
-//     require(JPATH_ROOT.DS.'administrator'.DS.'components'.DS.'com_virtuemart'.DS.'helpers'.DS.'config.php');
 // VmConfig::loadConfig();
 if (!class_exists('OrdernumberHelperJoomla'))
 	require_once (dirname(__FILE__) . DS . 'ordernumber_helper_joomla.php');
@@ -176,17 +178,26 @@ class plgVmShopperOrdernumber extends vmShopperPlugin {
 		$reps["[vendors]"] = array_keys($vendors);
 		
     }
-   
-    public function setupUserReplacements (&$reps, $details, $nrtype) {
-        // TODO: Implement shopper group!
-        $reps["[userid]"]      = $details->virtuemart_user_id;
-        if (isset($details->ip_address))     $reps["[ipaddress]"] = $details->ip_address;
-        // Customer number:
-        if (isset($details->username))       $reps["[username]"] = $details->username;
-        if (isset($details->name))           $reps["[name]"] = $details->name;
-        if (isset($details->user_is_vendor)) $reps["[user_is_vendor]"] = $details->user_is_vendor;
-    }
-    
+
+	public function setupUserReplacements (&$reps, $details, $nrtype) {
+		// TODO: Implement shopper group!
+		$reps["[userid]"]      = $details->virtuemart_user_id;
+		if ($details->virtuemart_user_id > 0) {
+			$user = JUser::getInstance($details->virtuemart_user_id);
+			$reps["[username]"] = $user->username;
+			$reps["[name]"] = $user->rname;
+			$reps["[isguest]"] = $user->guest;
+			$reps["[groups]"] = $user->groups;
+		} else {
+			$reps["[username]"] = "";
+			if (isset($details->name))           $reps["[name]"] = $details->name;
+			$reps["[isguest]"] = True;
+			$reps["[groups]"] = array();
+		}
+		if (isset($details->user_is_vendor)) $reps["[user_is_vendor]"] = $details->user_is_vendor;
+		if (isset($details->ip_address))     $reps["[ipaddress]"] = $details->ip_address;
+	}
+
     public function setupShippingReplacements(&$reps, $order, $nrtype) {
 		if (isset($details->virtuemart_paymentmethod_id))		$reps['[paymentmethod]'] = $details->virtuemart_paymentmethod_id;
 		if (isset($details->virtuemart_shipmentmethod_id))		$reps['[shipmentmethod]'] = $details->virtuemart_shipmentmethod_id;
diff --git a/ordernumber.xml b/ordernumber.xml
index 81015e5f137668350444f8d20cce4aac5673b185..eb512fad1bec026326be808ea4ddfe8b70c12804 100644
--- a/ordernumber.xml
+++ b/ordernumber.xml
@@ -7,7 +7,7 @@
     <authorUrl>http://www.open-tools.net/</authorUrl>
     <copyright>Copyright (C) 2012-2015 Reinhold Kainhofer. All rights reserved.</copyright>
     <license>http://www.gnu.org/licenses/gpl-3.0.html GNU/GPLv3</license>
-    <version>4.0.4</version>
+    <version>4.0.5</version>
     <releaseDate>2015-05-23</releaseDate>
     <releaseType>Minor update</releaseType>
     <downloadUrl>http://open-tools.net/virtuemart/advanced-ordernumbers.html</downloadUrl>
diff --git a/releases/plg_vmshopper_ordernumber_v4.0.5.zip b/releases/plg_vmshopper_ordernumber_v4.0.5.zip
new file mode 100644
index 0000000000000000000000000000000000000000..1e0f64ffec4ec46ddc3c1d6702d50322e4414a7c
Binary files /dev/null and b/releases/plg_vmshopper_ordernumber_v4.0.5.zip differ