diff --git a/src/main/java/org/olat/modules/fo/ui/MessageListController.java b/src/main/java/org/olat/modules/fo/ui/MessageListController.java
index ce8536ebf522a805cf1f7ed55846ca3f344e542a..b80162309ddbc7d8e6b49b624a110a443f905497 100644
--- a/src/main/java/org/olat/modules/fo/ui/MessageListController.java
+++ b/src/main/java/org/olat/modules/fo/ui/MessageListController.java
@@ -30,6 +30,7 @@ import java.util.Set;
 import javax.servlet.http.HttpServletRequest;
 
 import org.olat.basesecurity.BaseSecurityModule;
+import org.olat.core.commons.fullWebApp.popup.BaseFullWebappPopupLayoutFactory;
 import org.olat.core.commons.modules.bc.meta.MetaInfo;
 import org.olat.core.commons.modules.bc.meta.tagged.MetaTagged;
 import org.olat.core.commons.persistence.DBFactory;
@@ -47,10 +48,12 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
+import org.olat.core.gui.control.creator.ControllerCreator;
 import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController;
 import org.olat.core.gui.control.generic.dtabs.Activateable2;
 import org.olat.core.gui.control.generic.modal.DialogBoxController;
 import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
+import org.olat.core.gui.control.generic.popup.PopupBrowserWindow;
 import org.olat.core.gui.control.generic.wizard.Step;
 import org.olat.core.gui.control.generic.wizard.StepRunnerCallback;
 import org.olat.core.gui.control.generic.wizard.StepsMainRunController;
@@ -109,6 +112,7 @@ import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
 import org.olat.resource.OLATResourceManager;
 import org.olat.user.DisplayPortraitController;
+import org.olat.user.UserInfoMainController;
 import org.olat.user.UserManager;
 import org.olat.user.propertyhandlers.UserPropertyHandler;
 import org.olat.util.logging.activity.LoggingResourceable;
@@ -645,7 +649,7 @@ public class MessageListController extends BasicController implements GenericEve
 			// Add link with username that is clickable
 			String creatorFullName = StringHelper.escapeHtml(UserManager.getInstance().getUserDisplayName(creator));
 			Link visitingCardLink = LinkFactory.createCustomLink("vc_".concat(keyString), "vc", creatorFullName, Link.LINK_CUSTOM_CSS + Link.NONTRANSLATED, mainVC, this);
-			visitingCardLink.setUserObject(messageView);
+			visitingCardLink.setUserObject(creator);
 			LinkPopupSettings settings = new LinkPopupSettings(800, 600, "_blank");
 			visitingCardLink.setPopup(settings);
 		}
@@ -777,7 +781,6 @@ public class MessageListController extends BasicController implements GenericEve
 			Link link = (Link)source;
 			String command = link.getCommand();
 			Object uobject = link.getUserObject();
-
 			if (command.startsWith("qt")) {
 				doReply(ureq, (MessageView)uobject, true);
 			} else if (command.startsWith("rp")) {
@@ -792,6 +795,8 @@ public class MessageListController extends BasicController implements GenericEve
 				doMoveMessage(ureq, (MessageView)uobject);
 			} else if (command.startsWith("exile")) {
 				doExportForumItem(ureq, (MessageView)uobject);
+			} else if(command.equals("vc")) {
+				doOpenVisitingCard(ureq, (Identity)uobject);
 			}
 		} else if(mainVC == source) {
 			String cmd = event.getCommand();
@@ -1418,6 +1423,19 @@ public class MessageListController extends BasicController implements GenericEve
 		}
 	}
 	
+	private void doOpenVisitingCard(UserRequest ureq, Identity creator) {
+		ControllerCreator userInfoMainControllerCreator = new ControllerCreator() {
+			@Override
+			public Controller createController(UserRequest lureq, WindowControl lwControl) {
+				return new UserInfoMainController(lureq, lwControl, creator, true, false);
+			}					
+		};
+		//wrap the content controller into a full header layout
+		ControllerCreator layoutCtrlr = BaseFullWebappPopupLayoutFactory.createAuthMinimalPopupLayout(ureq, userInfoMainControllerCreator);
+		PopupBrowserWindow pbw = getWindowControl().getWindowBackOffice().getWindowManager().createNewPopupBrowserWindowFor(ureq, layoutCtrlr);
+		pbw.open(ureq);
+	}
+	
 	public enum LoadMode {
 		thread,
 		userMessages,