diff --git a/erpnext/setup/doctype/email_settings/email_settings.py b/erpnext/setup/doctype/email_settings/email_settings.py
index 3e17636..755b91d 100644
--- a/erpnext/setup/doctype/email_settings/email_settings.py
+++ b/erpnext/setup/doctype/email_settings/email_settings.py
@@ -45,28 +45,33 @@
 			out_email.port = cint(self.doc.mail_port)
 			out_email.use_ssl = self.doc.use_ssl
 			try:
+				err_msg = "Login Id or Mail Password missing. Please enter and try again."
+				if not (self.doc.mail_login and self.doc.mail_password):
+					raise AttributeError, err_msg
 				out_email.login = self.doc.mail_login.encode('utf-8')
 				out_email.password =  self.doc.mail_password.encode('utf-8')
 			except AttributeError, e:
-				webnotes.msgprint('Login Id or Mail Password missing. Please enter and try again.')
-				webnotes.msgprint(e)
+				webnotes.msgprint(err_msg)
+				raise e
 			
 			try:
 				sess = out_email.smtp_connect()
+				
 				try:
 					sess.quit()
 				except:
 					pass
 			except _socket.error, e:
 				# Invalid mail server -- due to refusing connection
-				webnotes.msgprint('Invalid Outgoing Mail Server. Please rectify and try again.')
-				webnotes.msgprint(e)
+				webnotes.msgprint('Invalid Outgoing Mail Server or Port. Please rectify and try again.')
+				raise e
 			except smtplib.SMTPAuthenticationError, e:
 				webnotes.msgprint('Invalid Login Id or Mail Password. Please rectify and try again.')
+				raise e
 			except smtplib.SMTPException, e:
 				webnotes.msgprint('There is something wrong with your Outgoing Mail Settings. \
 				Please contact us at support@erpnext.com')
-				webnotes.msgprint(e)
+				raise e
 		
 
 	def validate_incoming(self):
@@ -81,11 +86,14 @@
 			inc_email.host = self.doc.support_host.encode('utf-8')
 			inc_email.use_ssl = self.doc.support_use_ssl
 			try:
+				err_msg = 'User Name or Support Password missing. Please enter and try again.'
+				if not (self.doc.support_username and self.doc.support_password):
+					raise AttributeError, err_msg
 				inc_email.username = self.doc.support_username.encode('utf-8')
 				inc_email.password = self.doc.support_password.encode('utf-8')
 			except AttributeError, e:
-				webnotes.msgprint('User Name or Support Password missing. Please enter and try again.')
-				webnotes.msgprint(e)
+				webnotes.msgprint(err_msg)
+				raise e
 
 			pop_mb = POP3Mailbox(inc_email)
 			
@@ -94,7 +102,7 @@
 			except _socket.error, e:
 				# Invalid mail server -- due to refusing connection
 				webnotes.msgprint('Invalid POP3 Mail Server. Please rectify and try again.')
-				webnotes.msgprint(e)
+				raise e
 			except poplib.error_proto, e:
 				webnotes.msgprint('Invalid User Name or Support Password. Please rectify and try again.')
-				webnotes.msgprint(e)
+				raise e
diff --git a/erpnext/utilities/page/todo/todo.html b/erpnext/utilities/page/todo/todo.html
index 8c50218..d49fc23 100644
--- a/erpnext/utilities/page/todo/todo.html
+++ b/erpnext/utilities/page/todo/todo.html
@@ -1,18 +1,21 @@
-<div class="layout-wrapper" style="min-height: 300px; background-color: #FFFDC9">	
-	<a class="close" onclick="window.history.back();">&times;</a>
-	<h1>To Do</h1>
-	<br>
+<div class="layout-wrapper" style="min-height: 300px; background-color: #FFFDC9">
+	<div class="appframe-area"></div>
 	<div>
-		<div id="todo-list">
-			<h4>My List</h4><br>
-			<div class="todo-content"></div>
+		<a class="close" onclick="window.history.back();">&times;</a>
+		<h1>To Do</h1>
+		<br>
+		<div>
+			<div id="todo-list">
+				<h4>My List</h4><br>
+				<div class="todo-content"></div>
+			</div>
+			<div id="assigned-todo-list">
+				<h4>Assigned to others</h4><br>
+				<div class="todo-content"></div>
+			</div>
 		</div>
-		<div id="assigned-todo-list">
-			<h4>Assigned to others</h4><br>
-			<div class="todo-content"></div>
+		<div style="margin-top: 21px; clear: both">
+			<button id="add-todo" class="btn btn-small"><i class="icon-plus"></i> Add</button>
 		</div>
 	</div>
-	<div style="margin-top: 21px; clear: both">
-		<button id="add-todo" class="btn btn-small"><i class="icon-plus"></i> Add</button>
-	</div>
 </div>
\ No newline at end of file
diff --git a/erpnext/utilities/page/todo/todo.js b/erpnext/utilities/page/todo/todo.js
index 8cd8fc1..206becf 100644
--- a/erpnext/utilities/page/todo/todo.js
+++ b/erpnext/utilities/page/todo/todo.js
@@ -67,16 +67,18 @@
 		
 		todo.fullname = '';
 		if(todo.assigned_by) {
+			var assigned_by = wn.boot.user_info[todo.assigned_by]
 			todo.fullname = repl("[By %(fullname)s] &nbsp;", {
-				fullname: wn.boot.user_info[todo.assigned_by].fullname
+				fullname: (assigned_by ? assigned_by.fullname : todo.assigned_by),
 			});
 		}
 		
 		var parent_list = "#todo-list";
 		if(todo.owner !== user) {
 			parent_list = "#assigned-todo-list";
+			var owner = wn.boot.user_info[todo.owner];
 			todo.fullname = repl("[To %(fullname)s] &nbsp;", {
-				fullname: wn.boot.user_info[todo.owner].fullname
+				fullname: (owner ? owner.fullname : todo.owner),
 			});
 		}
 		parent_list += " div.todo-content";
@@ -197,4 +199,4 @@
 wn.pages.todo.onload = function() {
 	// load todos
 	erpnext.todo.refresh();
-}
+}
\ No newline at end of file
