diff --git a/src/main/java/se/su/dsv/scipro/message/models/PrivateMessageModel.java b/src/main/java/se/su/dsv/scipro/message/models/PrivateMessageModel.java
index 0276bbfce9..ea6ce889bb 100644
--- a/src/main/java/se/su/dsv/scipro/message/models/PrivateMessageModel.java
+++ b/src/main/java/se/su/dsv/scipro/message/models/PrivateMessageModel.java
@@ -74,39 +74,10 @@ public class PrivateMessageModel implements IClusterable {
                 rec.setToUser(selectedUser);
                 rec.setPrivateMessage(pm);
                 rec = recipientDao.save(rec);
+                notificationController.createNotificationForPrivateMessage(selectedUser, subject +"\n\n" + textMessage, PrivateMessagesPage.getAbsoluteForPrivateMessageURL());
             }
-			for(User user: users){
-				createNotification(user, subject +"\n\n" + textMessage);
-			}
         }
     }
     
-	private void createNotification(final User user,final String message){
-		Properties props = null;
-		try {
-			props = PropsUtils.load("notification.properties");
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		String mailSubject = props.getProperty("mailSubject");
-		String privateMessageNotification = props.getProperty("privateMessageNotification");
-		String twoNewLines = props.getProperty("twoNewLines");
 
-		
-		String webNotificationMessage = SciProSession.get()
-		.getUser()
-		+ privateMessageNotification;
-		
-		String mailMessage = webNotificationMessage + twoNewLines + message;
-		
-		NotificationMessage notificationMessage = new NotificationMessage(webNotificationMessage, mailSubject, mailMessage);
-		notificationController.processNotification(user, notificationMessage,
-				getAbsoluteForPrivateMessageURL(), NotificationPriority.MEDIUM);
-		
-	}
-	
-	private String getAbsoluteForPrivateMessageURL() {
-		PageParameters pageParameters = new PageParameters();
-		return RequestUtils.toAbsolutePath(RequestCycle.get().urlFor(PrivateMessagesPage.class, pageParameters).toString());
-	}
 }
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/message/models/ReplyMessageModel.java b/src/main/java/se/su/dsv/scipro/message/models/ReplyMessageModel.java
index f40d7eb96c..42c00856ee 100644
--- a/src/main/java/se/su/dsv/scipro/message/models/ReplyMessageModel.java
+++ b/src/main/java/se/su/dsv/scipro/message/models/ReplyMessageModel.java
@@ -1,17 +1,23 @@
 package se.su.dsv.scipro.message.models;
 
 import java.util.List;
+import java.util.Properties;
 
 import org.apache.wicket.IClusterable;
 import org.apache.wicket.injection.web.InjectorHolder;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
 import se.su.dsv.scipro.SciProSession;
+import se.su.dsv.scipro.data.controllers.NotificationController;
+import se.su.dsv.scipro.data.controllers.NotificationMessage;
 import se.su.dsv.scipro.data.dao.interfaces.PrivateMessageDao;
 import se.su.dsv.scipro.data.dao.interfaces.RecipientDao;
 import se.su.dsv.scipro.data.dataobjects.PrivateMessage;
 import se.su.dsv.scipro.data.dataobjects.Recipient;
 import se.su.dsv.scipro.data.dataobjects.User;
+import se.su.dsv.scipro.data.enums.NotificationPriority;
+import se.su.dsv.scipro.message.pages.PrivateMessagesPage;
+import se.su.dsv.scipro.util.PropsUtils;
 
 public class ReplyMessageModel implements IClusterable {
 
@@ -21,6 +27,8 @@ public class ReplyMessageModel implements IClusterable {
     private PrivateMessageDao pmDao;
     @SpringBean
     private RecipientDao recipientDao;
+    @SpringBean
+    private NotificationController notificationController;
 
     private PrivateMessage originalMessage;
     
@@ -81,5 +89,10 @@ public class ReplyMessageModel implements IClusterable {
         r.setToUser(originalMessage.getFromUser());
         r.setPrivateMessage(pm);
         r = recipientDao.save(r);
+        notificationController.createNotificationForReplyPrivateMessage(originalMessage.getFromUser(), getReplySubject() +"\n\n" + getReplyText(), PrivateMessagesPage.getAbsoluteForPrivateMessageURL());
+
     }
+    
+
+	
 }
diff --git a/src/main/java/se/su/dsv/scipro/message/pages/PrivateMessagesPage.java b/src/main/java/se/su/dsv/scipro/message/pages/PrivateMessagesPage.java
index bfb8a147fe..8d0884e19c 100644
--- a/src/main/java/se/su/dsv/scipro/message/pages/PrivateMessagesPage.java
+++ b/src/main/java/se/su/dsv/scipro/message/pages/PrivateMessagesPage.java
@@ -3,6 +3,7 @@ package se.su.dsv.scipro.message.pages;
 import java.util.Iterator;
 
 import org.apache.wicket.PageParameters;
+import org.apache.wicket.RequestCycle;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
@@ -14,6 +15,7 @@ import org.apache.wicket.markup.html.panel.FeedbackPanel;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.protocol.http.RequestUtils;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.odlabs.wiquery.ui.dialog.Dialog;
 import org.odlabs.wiquery.ui.tabs.Tabs;
@@ -192,5 +194,11 @@ public class PrivateMessagesPage extends MenuPage {
         }
 
     }
+    
+	public static String getAbsoluteForPrivateMessageURL() {
+		PageParameters pageParameters = new PageParameters();
+		return RequestUtils.toAbsolutePath(RequestCycle.get()
+				.urlFor(PrivateMessagesPage.class, pageParameters).toString());
+	}
 
 }
diff --git a/src/main/java/se/su/dsv/scipro/message/panels/PrivateMessagesPanel.java b/src/main/java/se/su/dsv/scipro/message/panels/PrivateMessagesPanel.java
index 7e81c88fab..03ce02c093 100644
--- a/src/main/java/se/su/dsv/scipro/message/panels/PrivateMessagesPanel.java
+++ b/src/main/java/se/su/dsv/scipro/message/panels/PrivateMessagesPanel.java
@@ -95,18 +95,16 @@ public class PrivateMessagesPanel extends Panel {
         PageableListView<Recipient> lv = new PageableListView<Recipient>("message-list-item", new PropertyModel<List<Recipient>>(messageListModel, "privateMessages"), PAGE_LIMIT) {
 
             private static final long serialVersionUID = 7851212974239684966L;
-            protected Recipient rec;
-            protected PrivateMessage pm;
 
             @Override
             protected void populateItem(final ListItem<Recipient> item) {
-                this.rec = item.getModelObject();
-                this.pm = rec.getPrivateMessage();
+            	final Recipient rec = item.getModelObject();
+            	final PrivateMessage pm = rec.getPrivateMessage();
                 item.add(new Label("dateField", dateFormat.format(pm.getDateCreated())));
                 item.add(new Label("fromField", pm.getFromUser().getFirstName() + " "
                         + pm.getFromUser().getLastName()));
                 item.add(new Label("subjectField", pm.getSubject()));
-                if (this.rec.getDateRead() == null)
+                if (rec.getDateRead() == null)
                     item.add(new SimpleAttributeModifier("class", "unread-message-table-row"));
                 item.add(new AjaxLink<String>("readLink") {
 
@@ -114,13 +112,12 @@ public class PrivateMessagesPanel extends Panel {
 
                     @Override
                     public void onClick(AjaxRequestTarget target) {
-                        pm = pmDao.reLoad(pm);
-                        currentMessage = pm;
+                    	currentMessage = pmDao.reLoad(pm);
                         
-                        rec = recipientDao.reLoad(item.getModelObject());
-                        if (rec.getDateRead() == null) {
-                            rec.setDateRead(GregorianCalendar.getInstance().getTime());
-                            recipientDao.save(rec);
+                    	Recipient rec2 = recipientDao.reLoad(item.getModelObject());
+                        if (rec2.getDateRead() == null) {
+                        	rec2.setDateRead(GregorianCalendar.getInstance().getTime());
+                            recipientDao.save(rec2);
                         }
 
                         messageContainer = new WebMarkupContainer("messageContainer");