diff --git a/Sda2/P/UnixSqlLdap/Jndi/usermanage/Schema/divers.sql b/Sda2/P/UnixSqlLdap/Jndi/usermanage/Schema/divers.sql
index 515965eb1de77867609e2b1cfb98c0858e88ef50..66642c1179235e87d5950d1eed23664446317126 100644
--- a/Sda2/P/UnixSqlLdap/Jndi/usermanage/Schema/divers.sql
+++ b/Sda2/P/UnixSqlLdap/Jndi/usermanage/Schema/divers.sql
@@ -1,5 +1,12 @@
 SELECT * from SysGroup;
 SELECT * from SysUser;
+SELECT * from SysUserGroup;
+
+SELECT uid,gid from SysUser, SysUserGroup, SysGroup
+WHERE SysUser.id = SysUserGroup.sysuser
+  AND SysUserGroup.sysgroup = SysGroup.id
+
 
 DELETE FROM SysGroup;
-DELETE FROM SysUser;
\ No newline at end of file
+DELETE FROM SysUser;
+DELETE FROM SysUserGroup;
\ No newline at end of file
diff --git a/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/parse/Parser.java b/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/parse/Parser.java
index 1bda490a1a3d1ffffcf424d2820ec5915cc0fd5a..a3f2d3b9316599fb8c0f85d15d076180366a3bbd 100644
--- a/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/parse/Parser.java
+++ b/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/parse/Parser.java
@@ -38,6 +38,14 @@ public class Parser {
           while ( null != (line = passwdStream.readLine())){
              rdbmsHandler.addUser(new User(line, lineNo++));
           }
+          
+          for (final String uid: Group.secondaryGroupsByUid.keySet()) {
+        	  final User user = User.userByUid.get(uid);
+        	  for (final Group group: Group.secondaryGroupsByUid.get(uid)) {
+        		  rdbmsHandler.addUserGroup(user, group);
+        	  }
+          }
+          
       } catch (IOException e) {
           throw new ParseError("Unable to parse '" +
                   passwdFile + "' file at line " + lineNo);
diff --git a/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/parse/User.java b/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/parse/User.java
index 1e1d6ec22afec7dc63a1f87d24fcd62ac5f78250..3f747f27f5270876c6d1db4006223c65870245ac 100644
--- a/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/parse/User.java
+++ b/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/parse/User.java
@@ -1,5 +1,7 @@
 package de.hdm_stuttgart.mi.sda2.usermanage.parse;
 
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Set;
 
 import de.hdm_stuttgart.mi.sda2.usermanage.rdbms.DatabaseObject;
@@ -7,6 +9,8 @@ import de.hdm_stuttgart.mi.sda2.usermanage.rdbms.DatabaseObject;
 
 public class User implements DatabaseObject {
 
+	public static final Map<String, User> userByUid = new HashMap<String, User>();
+	
 	private int databaseId = 0;
 
 	public final String uid;
@@ -25,10 +29,6 @@ public class User implements DatabaseObject {
 		int csvIndex = 0;
 		final String [] components = passwdLine.split(":");
 
-		if (7 != components.length) {
-
-		}
-
 		// row 1
 		uid = components[csvIndex++];
 
@@ -62,6 +62,7 @@ public class User implements DatabaseObject {
 		// Group dependencies
 		primaryGroup = Group.groupsByGidnumber.get(gidNumber);
 		secondaryGroups = Group.secondaryGroupsByUid.get(uidNumber);
+		userByUid.put(uid, this);
 	}
 	public int getDatabaseId() {
 		return databaseId;
diff --git a/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/rdbms/RdbmsHandler.java b/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/rdbms/RdbmsHandler.java
index a2db509245a73e27e35cdd341eb16c01a025741b..1030186f20be1633bb8ab0d7c05704c8ce8952d5 100644
--- a/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/rdbms/RdbmsHandler.java
+++ b/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/rdbms/RdbmsHandler.java
@@ -20,6 +20,7 @@ public class RdbmsHandler {
 
 	private MyNamedQuery<GroupParam> insertGroupStmt;
 	private MyNamedQuery<UserParam> insertUserStmt;
+	private MyNamedQuery<UserGroupParam> insertUserGroupStmt;
 
 	static {
 		try {
@@ -43,6 +44,7 @@ public class RdbmsHandler {
 		conn.setAutoCommit(false);
 		insertGroupStmt = new MyNamedQuery<GroupParam>(conn, GroupParam.gid, Statement.RETURN_GENERATED_KEYS);
 		insertUserStmt = new MyNamedQuery<UserParam>(conn, UserParam.uid, Statement.RETURN_GENERATED_KEYS);
+		insertUserGroupStmt = new MyNamedQuery<UserGroupParam>(conn, UserGroupParam.sysuser, Statement.RETURN_GENERATED_KEYS);
 	}
 
 	public void addGroup(final Group group) {
@@ -74,9 +76,20 @@ public class RdbmsHandler {
 			e.printStackTrace();
 		}
 	}
-
+	public void addUserGroup(final User user, final Group group) {
+		try {
+			insertUserGroupStmt.setInt(UserGroupParam.sysuser, user.getDatabaseId());
+			insertUserGroupStmt.setInt(UserGroupParam.sysgroup, group.getDatabaseId());
+			insertUserGroupStmt.getStatement().addBatch();
+		} catch (SQLException e) {
+			log.fatal("Error associating secondary group '" + group + "' to user '" + user.uid + "'");
+			e.printStackTrace();
+		}
+		
+	}
 	public void commit() {
 		try {
+			insertUserGroupStmt.getStatement().executeBatch();
 			conn.commit();
 		} catch (SQLException e) {
 			// TODO Auto-generated catch block
diff --git a/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/rdbms/UserGroupParam.java b/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/rdbms/UserGroupParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..06a1de9c006fb839b2362b202a9f4612425dca11
--- /dev/null
+++ b/Sda2/P/UnixSqlLdap/Jndi/usermanage/src/main/java/de/hdm_stuttgart/mi/sda2/usermanage/rdbms/UserGroupParam.java
@@ -0,0 +1,26 @@
+package de.hdm_stuttgart.mi.sda2.usermanage.rdbms;
+
+public enum UserGroupParam implements Param {
+
+	// See index values in subsequent SQL statement
+	sysuser(1),
+	sysgroup(2);
+	
+	public static final String sql =
+			"INSERT INTO SysUserGroup (sysuser, sysgroup) "
+		                 /* Parameter index  1         2 */
+    			                   + "VALUES(?,        ?)";
+
+	public final int index;
+	
+	UserGroupParam(final int index){
+		this.index = index;
+	}
+	public int getIndex() {
+		return index;
+	}
+	
+	public String getSql() {
+		return sql;
+	}
+}