diff --git a/stock/doctype/stock_entry/stock_entry.js b/stock/doctype/stock_entry/stock_entry.js
index 9b89d78..c54f619 100644
--- a/stock/doctype/stock_entry/stock_entry.js
+++ b/stock/doctype/stock_entry/stock_entry.js
@@ -205,25 +205,27 @@
 	},
 	
 	make_return_jv: function() {
-		this.frm.call({
-			method: "make_return_jv",
-			args: {
-				stock_entry: this.frm.doc.name
-			},
-			callback: function(r) {
-				if(!r.exc) {
-					var jv_name = wn.model.make_new_doc_and_get_name('Journal Voucher');
-					var jv = locals["Journal Voucher"][jv_name];
-					$.extend(jv, r.message[0]);
-					$.each(r.message.slice(1), function(i, jvd) {
-						var child = wn.model.add_child(jv, "Journal Voucher Detail", "entries");
-						$.extend(child, jvd);
-					});
-					loaddoc("Journal Voucher", jv_name);
+		if(this.get_doctype_docname()) {
+			this.frm.call({
+				method: "make_return_jv",
+				args: {
+					stock_entry: this.frm.doc.name
+				},
+				callback: function(r) {
+					if(!r.exc) {
+						var jv_name = wn.model.make_new_doc_and_get_name('Journal Voucher');
+						var jv = locals["Journal Voucher"][jv_name];
+						$.extend(jv, r.message[0]);
+						$.each(r.message.slice(1), function(i, jvd) {
+							var child = wn.model.add_child(jv, "Journal Voucher Detail", "entries");
+							$.extend(child, jvd);
+						});
+						loaddoc("Journal Voucher", jv_name);
+					}
+
 				}
-				
-			}
-		});
+			});
+		}
 	},
 
 });
@@ -358,6 +360,7 @@
 
 cur_frm.cscript.validate = function(doc, cdt, cdn) {
 	cur_frm.cscript.validate_items(doc);
+	validated = cur_frm.cscript.get_doctype_docname() ? true : false;
 }
 
 cur_frm.cscript.validate_items = function(doc) {
