Index: /CKEditor/tests/tt/5096/1.html
===================================================================
--- /CKEditor/tests/tt/5096/1.html	(revision 5031)
+++ /CKEditor/tests/tt/5096/1.html	(revision 5031)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Test Ticket #5096</title>
+	<meta name="tags" content="editor,unit,all">
+	<script type="text/javascript" src="../../cktester/cell.js"></script>
+	<script type="text/javascript">
+	//<![CDATA[
+CKEDITOR.test.runner.defer = true;
+CKEDITOR.plugins.load( 'htmlwriter' , function()
+{
+ CKEDITOR.test.runner.run();
+} );
+
+var tc;
+CKEDITOR.test.addTestCase( tc = ( function()
+{
+	// Local reference to the "assert" object.
+	var assert = CKEDITOR.test.assert;
+
+	return {
+
+		test_writer_forceSimpleAmpersand : function()
+		{
+			var html = CKEDITOR.dom.element.createFromHtml( '<a href="foo&bar&toe"></a>' ).getOuterHtml();
+
+			var writer = new CKEDITOR.htmlWriter(),
+					filter = new CKEDITOR.htmlParser.filter();
+
+			writer.forceSimpleAmpersand = true;
+			filter.addRules(
+				{
+					elements :
+					{
+						a : function( element )
+						{
+							element.attributes[ 'cke:custom' ] = 1;
+						}
+					}
+				});
+			
+			var fragment = CKEDITOR.htmlParser.fragment.fromHtml( html );
+			fragment.writeHtml( writer, filter );
+			assert.areSame( '<a cke:custom="1" href="foo&bar&toe"></a>', writer.getHtml(), 'Writer output html doesn\'t match. ' );
+		},
+		name :document.title
+	};
+} )() );
+	//]]>
+	</script>
+</head>
+<body>
+</html>
