diff --git a/IPython/frontend/html/notebook/static/js/codecell.js b/IPython/frontend/html/notebook/static/js/codecell.js
index 8a4da1b..9532eed 100644
--- a/IPython/frontend/html/notebook/static/js/codecell.js
+++ b/IPython/frontend/html/notebook/static/js/codecell.js
@@ -251,6 +251,23 @@ var IPython = (function (IPython) {
CodeCell.prototype.append_stream = function (json) {
+ // temporary fix: if stream undefined (json file written prior to this patch),
+ // default to most likely stdout:
+ if (json.stream == undefined){
+ json.stream = 'stdout';
+ }
+ if (this.outputs.length > 0){
+ // have at least one output to consider
+ var last = this.outputs[this.outputs.length-1];
+ if (last.output_type == 'stream' && json.stream == last.stream){
+ // latest output was in the same stream,
+ // so append directly into its pre tag
+ this.element.find('div.output_stream').last().find('pre').append(json.text);
+ return;
+ }
+ }
+
+ // If we got here, attach a new div
var toinsert = this.create_output_area();
this.append_text(json.text, toinsert);
this.element.find('div.output').append(toinsert);
diff --git a/IPython/frontend/html/notebook/static/js/notebook.js b/IPython/frontend/html/notebook/static/js/notebook.js
index b84e3b8..f5fcdc8 100644
--- a/IPython/frontend/html/notebook/static/js/notebook.js
+++ b/IPython/frontend/html/notebook/static/js/notebook.js
@@ -710,7 +710,8 @@ var IPython = (function (IPython) {
var json = {};
json.output_type = msg_type;
if (msg_type === "stream") {
- json.text = utils.fixConsole(content.data + '\n');
+ json.text = utils.fixConsole(content.data);
+ json.stream = content.name;
} else if (msg_type === "display_data") {
json = this.convert_mime_types(json, content.data);
} else if (msg_type === "pyout") {