diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java
index ba830e6cc3ad88ba3f49b845648b4cdbf4a91898..78e4554fdd99633c2816b77cb6bad0ec33fb4521 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java
@@ -85,12 +85,18 @@ public class LoginController extends HttpServlet {
         // A log out request
         if(request.getServletPath().contains("logout"))
         {
+            VipsLogicUser user = request.getSession().getAttribute("user") != null ? (VipsLogicUser) request.getSession().getAttribute("user") : null;
+            // Make sure we delete the current user and their UUID
+            userBean.deleteUserUuid(user.getUserUuid());
             request.getSession().removeAttribute("user");
+
+            // Check if we have a cookie to delete as well
             Cookie rememberedUser = ServletUtil.getCookie(request, "rememberedUser");
             if(rememberedUser != null)
             {
                 rememberedUser.setMaxAge(0);
                 response.addCookie(rememberedUser);
+                // This is likely duplication(?) - or are there cases where this makes sense?
                 userBean.deleteUserUuid(UUID.fromString(rememberedUser.getValue()));
             }
             request.setAttribute("messageKey","logoutsuccess");
@@ -119,16 +125,19 @@ public class LoginController extends HttpServlet {
                 String password = request.getParameter("password");
                 try (PrintWriter out = response.getWriter()) {
                     
-                    Map<String,String> creds = new HashMap();
+                    Map<String,String> creds = new HashMap<>();
                     creds.put("username", username);
                     creds.put("password", password);
 
+                    // Check user credentials
                     VipsLogicUser user = userBean.authenticateUser(creds);
 
                     if(user != null && user.getUserStatusId().equals(Globals.USER_STATUS_APPROVED))
                     {
+                        UserUuid uUUID = userBean.createAndPersistUserUuid(user);
+                        user.setUserUuid(uUUID.getUserUuidPK().getUserUuid());
                         request.getSession().setAttribute("user", user);
-                        UUID uUUID = this.handleRememberUser(request, response, user, returnUUID);
+                        this.handleRememberUser(request, response, user, returnUUID);
                         if(returnUUID)
                         {
                             nextPage += (nextPage.contains("?") ? "&": "?") + "returnUUID=" + uUUID.toString();
@@ -168,14 +177,14 @@ public class LoginController extends HttpServlet {
                 request.getRequestDispatcher("/login.ftl").forward(request, response);
             }
         }
-        // Login from a remote resource. Return UUID
+        // Login from a remote resource, e.g. an app. Return UUID
         else if(request.getServletPath().contains("remotelogin"))
         {
             String username = request.getParameter("username");
             String password = request.getParameter("password");
             
 
-            Map<String,String> creds = new HashMap();
+            Map<String,String> creds = new HashMap<>();
             creds.put("username", username);
             creds.put("password", password);
 
@@ -184,10 +193,11 @@ public class LoginController extends HttpServlet {
             if(user != null && user.getUserStatusId().equals(Globals.USER_STATUS_APPROVED))
             {
                 request.getSession().setAttribute("user", user);
-                UUID uUUID = this.handleRememberUser(request, response, user, returnUUID);
+                UserUuid uUUID = userBean.createAndPersistUserUuid(user);
+                user.setUserUuid(uUUID.getUserUuidPK().getUserUuid());
+                this.handleRememberUser(request, response, user, returnUUID);
                 // All is well, return object
                 ObjectMapper mapper = new ObjectMapper();
-                user.setUserUuid(uUUID);
                 mapper.writeValue(out,user);
                 out.close();
             }
@@ -262,27 +272,30 @@ public class LoginController extends HttpServlet {
      * 
      * @param request
      * @param response
-     * @param user 
+     * @param user the VIPS user
+     * @param returnUUID has a UUID been requested to be returned to the client?
+     * @return
      */
-    private UUID handleRememberUser(HttpServletRequest request, HttpServletResponse response, VipsLogicUser user, Boolean returnUUID)
+    private void handleRememberUser(HttpServletRequest request, HttpServletResponse response, VipsLogicUser user, Boolean returnUUID)
     {
-        
+        // This is from the login form, the checkbox that you tick off to save your login
         String rememberUser = request.getParameter("rememberUser") != null ? 
                 request.getParameter("rememberUser") 
                 : (String) request.getSession().getAttribute("rememberUser");
         request.getSession().removeAttribute("rememberUser");
         if(returnUUID || (rememberUser != null && rememberUser.equals("on")))
         {
-            UserUuid uUUID = userBean.createAndPersistUserUuid(user);
+            
             if(rememberUser != null && rememberUser.equals("on"))
             {
-                Cookie rememberedUser = new Cookie("rememberedUser", uUUID.getUserUuidPK().getUserUuid().toString());
+                Cookie rememberedUser = new Cookie("rememberedUser", user.getUserUuid().toString());
                 rememberedUser.setPath("/");
                 rememberedUser.setMaxAge(Globals.DEFAULT_UUID_VALIDITY_DURATION_DAYS * 24 * 60 * 60);
                 response.addCookie(rememberedUser);
             }
-            return uUUID.getUserUuidPK().getUserUuid();
+            //return uUUID.getUserUuidPK().getUserUuid();
         }
+        // Unremember the user both server side and browser side
         else
         {
             Cookie rememberedUser = ServletUtil.getCookie(request, "rememberedUser");
@@ -292,7 +305,7 @@ public class LoginController extends HttpServlet {
                 response.addCookie(rememberedUser);
                 userBean.deleteUserUuid(UUID.fromString(rememberedUser.getValue()));
             }
-            return null;
+            //return null;
         }
     }