diff --git a/exec/load/frame.js b/exec/load/frame.js
index 5d055fcf58aef2898512a595d2e28b844323e35a..e1166e6039c816faa89a08f580289c15fd3c616e 100644
--- a/exec/load/frame.js
+++ b/exec/load/frame.js
@@ -133,24 +133,25 @@ function Frame(x,y,width,height,attr,parent) {
 		open:false,
 		ctrl_a:false,
 		id:0
-	}
+	};
 	var settings = {
 		v_scroll:true,
 		h_scroll:false,
 		scrollbars:false,
 		lf_strict:true,
 		checkbounds:true,
-		transparent:false
-	}
+		transparent:false,
+		word_wrap:false
+	};
 	var relations = {
 		parent:undefined,
 		child:[]
-	}
+	};
 	var position = {
 		cursor:new Cursor(0,0,this),
 		offset:new Offset(0,0,this),
 		stored:new Cursor(0,0,this)
-	}
+	};
 		
 	/* protected properties */
 	this.__defineGetter__("child", function() {
@@ -290,6 +291,15 @@ function Frame(x,y,width,height,attr,parent) {
 		else
 			throw("non-boolean v_scroll: " + bool);
 	});
+	this.__defineGetter__("word_wrap", function() {
+		return settings.word_wrap;
+	});
+	this.__defineSetter__("word_wrap", function(bool) {
+		if(typeof bool == "boolean")
+			settings.word_wrap=bool;
+		else
+			throw("non-boolean word_wrap: " + bool);
+	});
 	this.__defineGetter__("h_scroll", function() {
 		return settings.h_scroll;
 	});
@@ -322,6 +332,7 @@ function Frame(x,y,width,height,attr,parent) {
 			px += position.offset.x;
 			py += position.offset.y;
 		}
+		//I don't remember why I did this, but it was probably important at the time
 		//if(!properties.data[py] || !properties.data[py][px])
 		if(!properties.data[py])
 			throw("Frame.setData() - invalid coordinates: " + px + "," + py);
@@ -831,6 +842,8 @@ function Frame(x,y,width,height,attr,parent) {
 	this.putmsg = function(str,attr) {
 		if(str == undefined)
 			return;
+		if(settings.word_wrap) 
+			str = word_wrap(str,this.width);
 		str = str.toString().split('');
 		var curattr = attr;
 		if(!curattr)
diff --git a/exec/load/layout.js b/exec/load/layout.js
index 161e818af313fb065cc1cd4df9d13115cafe345e..3c4f093f18cf3b9118821f9478249c22faa98423 100644
--- a/exec/load/layout.js
+++ b/exec/load/layout.js
@@ -533,6 +533,7 @@ function LayoutView(title,frame,parent) {
 			}
 			properties.chat = tab.chat;
 			tab.frame.lf_strict = false;
+			tab.frame.word_wrap = true;
 			tab.hotkeys = false;
 			break;
 		case "FRAME":
@@ -692,7 +693,7 @@ function LayoutView(title,frame,parent) {
 /* view tab object, meant to inhabit a layout view.
  * will generally occupy the same space as other view tabs
  * within a given view, cannot be effectively instantiated
- * on its own, but rather through ViewFrame.addTab() */
+ * on its own, but rather through LayoutView.addTab() */
 function ViewTab(title,frame,parent) {
 	/* private properties */
 	var properties={