diff --git a/src/main/java/de/bps/course/nodes/vc/_spring/vcContext.xml b/src/main/java/de/bps/course/nodes/vc/_spring/vcContext.xml
index 21fff6194513f5e0d5be6a0105d5b23ec793494c..d21ccb56525d09c8aafb759543e0550731bdc56a 100644
--- a/src/main/java/de/bps/course/nodes/vc/_spring/vcContext.xml
+++ b/src/main/java/de/bps/course/nodes/vc/_spring/vcContext.xml
@@ -26,14 +26,14 @@
 	
 	<!-- Definition of the providers -->
 	<bean id="wimbaProvider" class="de.bps.course.nodes.vc.provider.wimba.WimbaClassroomProvider">
-		<property name="enabled" value="${vc.winba.enabled}" />
+		<property name="enabled" value="${vc.wimba.enabled}" />
 		<property name="providerId" value="wimba" />
 		<property name="displayName" value="Wimba Classroom" />
-		<property name="protocol" value="${vc.winba.protocol}" />
-		<property name="port" value="${vc.winba.port}" />
-		<property name="baseUrl" value="${vc.winba.baseurl}" />
-		<property name="adminLogin" value="${vc.winba.adminlogin}" />
-		<property name="adminPassword" value="${vc.winba.adminpassword}" />
+		<property name="protocol" value="${vc.wimba.protocol}" />
+		<property name="port" value="${vc.wimba.port}" />
+		<property name="baseUrl" value="${vc.wimba.baseurl}" />
+		<property name="adminLogin" value="${vc.wimba.adminlogin}" />
+		<property name="adminPassword" value="${vc.wimba.adminpassword}" />
 		<!-- Options -->
 		<property name="defaultConfig">
 			<ref bean="wimbaDefaultConfig" />
diff --git a/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaClassroomConfiguration.java b/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaClassroomConfiguration.java
index 50f9191694bf512996db08c61181bae9f8121b56..8113572e29f54ef3aeedb54ac004a91b74852ddb 100644
--- a/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaClassroomConfiguration.java
+++ b/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaClassroomConfiguration.java
@@ -63,6 +63,8 @@ public class WimbaClassroomConfiguration extends DefaultVCConfiguration implemen
 	private boolean powerPointImportEnabled;
 	/** enable guest access */
 	private boolean guestAccessAllowed;
+	/** enable registered users access */
+	private boolean regUsersAccessAllowed;
 	
 	/* be compatible with old configuration versions */
 	@SuppressWarnings("unused")	private transient boolean chatEnabled;
@@ -116,6 +118,10 @@ public class WimbaClassroomConfiguration extends DefaultVCConfiguration implemen
 		return guestAccessAllowed;
 	}
 
+	public boolean isRegUsersAccessAllowed() {
+		return regUsersAccessAllowed;
+	}
+
 	public void setToolsToStudentsEnabled(boolean toolsToStudentsEnabled) {
 		this.toolsToStudentsEnabled = toolsToStudentsEnabled;
 	}
@@ -164,6 +170,10 @@ public class WimbaClassroomConfiguration extends DefaultVCConfiguration implemen
 		this.guestAccessAllowed = guestAccessAllowed;
 	}
 
+	public void setRegUsersAccessAllowed(boolean regUsersAccessAllowed) {
+		this.regUsersAccessAllowed = regUsersAccessAllowed;
+	}
+
 	public void setStudentsChatAllowed(boolean studentsChatAllowed) {
 		this.studentsChatAllowed = studentsChatAllowed;
 	}
diff --git a/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaClassroomProvider.java b/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaClassroomProvider.java
index 09003b15a52cb781876d51057ad38871e4ebcd76..1ad6440b5bc02bb8088d0c4c74d95e9146760da7 100644
--- a/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaClassroomProvider.java
+++ b/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaClassroomProvider.java
@@ -159,7 +159,8 @@ public class WimbaClassroomProvider extends LogDelegator implements VCProvider {
 		// set preview mode because this setting has no effect on creation
 		if(success) {
 			success = setPreviewMode(roomId, false, false);
-			updateRights("Guest", roomId, "Student", false);
+			updateRights(null, roomId, "Student", true, false);
+			updateGroupRights(null, roomId, "Student", "RegisteredUser", true);
 		}
 		return success;
 	}
@@ -207,10 +208,10 @@ public class WimbaClassroomProvider extends LogDelegator implements VCProvider {
 		if(!success) handleError(response.getStatus(), null);
 		
 		if(wc.isGuestAccessAllowed()) {
-			updateRights("Guest", roomId, "Student", false);
+			updateRights(null, roomId, "Student", true, false);
 		} else if(function.equals("modifyClass")) {
 			// only delete guest access if this is an already existing meeting
-			updateRights("Guest", roomId, "Student", true);
+			updateRights(null, roomId, "Student", true, true);
 		}
 		
 		return success;
@@ -248,7 +249,7 @@ public class WimbaClassroomProvider extends LogDelegator implements VCProvider {
 		try {
 			url = uri.toURL();
 		} catch (MalformedURLException e) {
-			logWarn("Cannot create access URL to Wimba Classroom meeting for id \"" + PREFIX + roomId + "\" and user \"" + identity.getName() + "\"", e);
+			logWarn("Cannot create access URL to Wimba Classroom meeting for id \"" + PREFIX + roomId + "\" and user \"" + identity.getName() + "\" ("+identity.getKey()+")", e);
 		}
 		
 		return url;
@@ -291,8 +292,8 @@ public class WimbaClassroomProvider extends LogDelegator implements VCProvider {
 		
 		Map<String, String> parameters = new HashMap<String, String>();
 		parameters.put("function", "getAuthToken");
-		parameters.put("target", PREFIX + identity.getName());
-		parameters.put("nickname", identity.getName());
+		parameters.put("target", PREFIX + identity.getKey());
+		parameters.put("nickname", identity.getUser().getProperty(UserConstants.FIRSTNAME, null).replaceAll("\\W", "_")+"_"+identity.getUser().getProperty(UserConstants.LASTNAME, null).replaceAll("\\W", "_"));
 		String raw = sendRequest(parameters);
 		WimbaResponse response = getResponseDocument(raw);
 		boolean success = evaluateOk(response);
@@ -337,7 +338,7 @@ public class WimbaClassroomProvider extends LogDelegator implements VCProvider {
 		// create login if necessary
 		if(!exists) success = createLogin(identity);
 		// update access rights
-		if(exists | success) success = updateRights(identity.getName(), roomId, "Instructor", false);
+		if(exists | success) success = updateRights(identity, roomId, "Instructor", false, false);
 		
 		return success;
 	}
@@ -352,16 +353,26 @@ public class WimbaClassroomProvider extends LogDelegator implements VCProvider {
 		// create login if necessary
 		if(!exists) success = createLogin(identity);
 		// update access rights
-		if(exists | success) success = updateRights(identity.getName(), roomId, "Student", false);
+		if(exists | success) success = updateRights(identity, roomId, "Student", false, false);
 		
 		return success;
 	}
 	
-	private boolean updateRights(String username, String roomId, String role, boolean delete) {
+		/**
+		 * 
+		 * @param identity
+		 * @param roomId
+		 * @param role
+		 * @param isGuest
+		 * @param delete
+		 * @return
+		 */
+	private boolean updateRights(Identity identity, String roomId, String role, boolean isGuest, boolean delete) {
+		if (identity==null && !isGuest) return false;
 		Map<String, String> parameters = new HashMap<String, String>();
 		parameters.put("function", delete ? "deleteRole" : "createRole");
 		parameters.put("target", PREFIX + roomId);
-		parameters.put("user_id", username.equals("Guest") ? "Guest" : PREFIX + username);
+		parameters.put("user_id", isGuest ? "Guest" : PREFIX + identity.getKey());
 		parameters.put("role_id", role);
 		String raw = sendRequest(parameters);
 		WimbaResponse response = getResponseDocument(raw);
@@ -370,10 +381,34 @@ public class WimbaClassroomProvider extends LogDelegator implements VCProvider {
 		return success;
 	}
 	
+	/**
+	 * 
+	 * @param identity
+	 * @param roomId
+	 * @param role
+	 * @param group_id
+	 * @param delete
+	 * @return
+	 */
+	private boolean updateGroupRights(Identity identity, String roomId, String role, String group_id, boolean delete) {
+		Map<String, String> parameters = new HashMap<String, String>();
+		parameters.put("function", delete ? "deleteRole" : "createRole");
+		parameters.put("target", PREFIX + roomId);
+		parameters.put("group_id", group_id);
+		parameters.put("role_id", role);
+		if (identity != null)
+			parameters.put("user_id", PREFIX + identity.getKey());
+		String raw = sendRequest(parameters);
+		WimbaResponse response = getResponseDocument(raw);
+		boolean success = evaluateOk(response);
+		
+		return success;
+	}
+	
 	private boolean createLogin(Identity identity) {
 		Map<String, String> parameters = new HashMap<String, String>();
 		parameters.put("function", "createUser");
-		parameters.put("target", PREFIX + identity.getName());
+		parameters.put("target", PREFIX + identity.getKey());
 		parameters.put("password_type", "P");// specified password, see Wimba Classroom 6.0 API Guide, page 8
 		parameters.put("password", Encoder.encrypt(identity.getName() + "@" + Settings.getApplicationName()));
 		parameters.put("first_name", identity.getUser().getProperty(UserConstants.FIRSTNAME, null));
@@ -390,7 +425,7 @@ public class WimbaClassroomProvider extends LogDelegator implements VCProvider {
 		parameters.put("function", "listUser");
 		parameters.put("attribute", "user_id");
 		parameters.put("filter01", "user_id");
-		parameters.put("filter01value", PREFIX + identity.getName());
+		parameters.put("filter01value", PREFIX + identity.getKey());
 		String raw = sendRequest(parameters);
 		WimbaResponse response = getResponseDocument(raw);
 		boolean success = evaluateOk(response);
@@ -492,7 +527,7 @@ public class WimbaClassroomProvider extends LogDelegator implements VCProvider {
 		try {
 			url = uri.toURL();
 		} catch (MalformedURLException e) {
-			logWarn("Cannot create access URL to Wimba Classroom meeting for id \"" + recordingId + "\" and user \"" + identity.getName() + "\"", e);
+			logWarn("Cannot create access URL to Wimba Classroom meeting for id \"" + recordingId + "\" and user \"" + identity.getName() + "\" ("+identity.getKey()+")", e);
 		}
 		
 		return url;
diff --git a/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaDisplayController.java b/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaDisplayController.java
index fb2993e32ba1a8560002aaaa12d18fd37db113cf..303559af35522804cf755727fd7d15ff23bb8064 100644
--- a/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaDisplayController.java
+++ b/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaDisplayController.java
@@ -297,17 +297,25 @@ public class WimbaDisplayController extends BasicController {
   }
 
   private void openWimbaUrl(UserRequest ureq, String target) {
-    boolean success = wimba.createModerator(ureq.getIdentity(), roomId);
-    if(success) {
-      wimba.login(ureq.getIdentity(), null);
-      String url = wimba.createServiceUrl(target, roomId);
-      RedirectMediaResource rmr = new RedirectMediaResource(url);
-      ureq.getDispatchResult().setResultingMediaResource(rmr);
-    } else {
-      // could not create moderator or update the rights
-      getWindowControl().setError(translate("error.update.rights"));
-      return;
-    }
+	  boolean success = false;
+	  if (target.equals(COMMAND_OPEN_WIZARD)) {
+		  String url = wimba.createServiceUrl(target, null);
+		  RedirectMediaResource rmr = new RedirectMediaResource(url);
+		  ureq.getDispatchResult().setResultingMediaResource(rmr);
+	  }
+	  else {
+		  success = wimba.createModerator(ureq.getIdentity(), roomId);
+		  if(success) {
+			  wimba.login(ureq.getIdentity(), null);
+			  String url = wimba.createServiceUrl(target, roomId);
+			  RedirectMediaResource rmr = new RedirectMediaResource(url);
+			  ureq.getDispatchResult().setResultingMediaResource(rmr);
+		  } else {
+			  // could not create moderator or update the rights
+			  getWindowControl().setError(translate("error.update.rights"));
+			  return;
+		  }
+	  }
   }
 
   private void joinMeeting(UserRequest ureq, boolean guest) {
diff --git a/src/main/java/de/bps/course/nodes/vc/provider/wimba/_spring/wimbaContext.xml b/src/main/java/de/bps/course/nodes/vc/provider/wimba/_spring/wimbaContext.xml
index 38168a031f2172ada6ff2aab7ec443442ce6d30c..621c9d4878ae7c7475f8dcca0ca51fec59b03145 100644
--- a/src/main/java/de/bps/course/nodes/vc/provider/wimba/_spring/wimbaContext.xml
+++ b/src/main/java/de/bps/course/nodes/vc/provider/wimba/_spring/wimbaContext.xml
@@ -24,7 +24,8 @@
   	<property name="appshareEnabled" value="true" />
   	<property name="powerPointImportEnabled" value="true" />
   	<property name="guestAccessAllowed" value="false" />
-  	<property name="studentsChatAllowed" value="true" />
+  	<property name="regUsersAccessAllowed" value="false" />  	
+	<property name="studentsChatAllowed" value="true" />
   	<property name="studentsPrivateChatAllowed" value="true" />
   </bean>
   
diff --git a/src/main/resources/serviceconfig/olat.properties b/src/main/resources/serviceconfig/olat.properties
index ded06db47e53536c624fb533c67866359d1992db..1543bc0c989be812d5c91a2319f13a5918f5148a 100644
--- a/src/main/resources/serviceconfig/olat.properties
+++ b/src/main/resources/serviceconfig/olat.properties
@@ -717,12 +717,12 @@ vc.adobe.usertype=user
 vc.adobe.usertype.values=guest,user
 
 #Winba
-vc.winba.enabled=false
-vc.winba.protocol=http
-vc.winba.port=80
-vc.winba.baseurl=localhost
-vc.winba.adminlogin=admin
-vc.winba.adminpassword=password
+vc.wimba.enabled=false
+vc.wimba.protocol=http
+vc.wimba.port=80
+vc.wimba.baseurl=localhost
+vc.wimba.adminlogin=admin
+vc.wimba.adminpassword=password
 
 #Vitero
 vc.vitero.enabled=false