diff --git a/lib/character.js b/lib/character.js
index <HASH>..<HASH> 100644
--- a/lib/character.js
+++ b/lib/character.js
@@ -21,6 +21,9 @@ exports.exec = function(term, chr) {
 		case '\x88': // TABSET
 			term.setTab();
 			break;
+		case '\x0e':	/* SO */
+		case '\x0f':	/* SI */
+			break;
 		default:
 			term.inject(chr);
 	}
diff --git a/test/terminal.js b/test/terminal.js
index <HASH>..<HASH> 100644
--- a/test/terminal.js
+++ b/test/terminal.js
@@ -74,6 +74,10 @@ describe('Terminal', function() {
 		t.setCur({x:0, y:1});
 		t.deleteLines(2);
 		expect(t.toString()).to.be("1\n4");
-
+	});
+	it("shouldn't print non printables", function() {
+		var t = newTerminal();
+		t.write("\x0e\x0f");
+		expect(t.toString()).to.be("");
 	});
 });
0x0e and 0x0f are non printable characters.