Index: /CKEditor/branches/prototype/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- /CKEditor/branches/prototype/_source/plugins/wysiwygarea/plugin.js	(revision 2771)
+++ /CKEditor/branches/prototype/_source/plugins/wysiwygarea/plugin.js	(revision 2772)
@@ -59,4 +59,27 @@
 
 	// #### protectEvents - END
+
+	// #### protectAttributes - START
+	var protectUrlTagRegex = /<(?:a|area|img)(?=\s).*?\s(?:href|src)=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,
+		protectUrlAttributeRegex = /\s(href|src)(\s*=\s*?('|")[\s\S]*?\3)/gi,
+		protectedUrlTagRegex = /<(?:a|area|img)(?=\s)(?:"[^"]*"|'[^']*'|[^<])*>/gi,
+		protectedAttributeRegex = /_cke_saved_/gi,
+		protectUrls = function( html )
+		{
+			return html.replace( protectUrlTagRegex, protectUrls_ReplaceTags );
+		},
+		protectUrls_ReplaceTags = function( tagMatch )
+		{
+			return tagMatch.replace( protectUrlAttributeRegex, '$& _cke_saved_$1$2');
+		},
+		protectUrlsRestore = function( html )
+		{
+			return html.replace( protectedUrlTagRegex, protectUrlsRestore_ReplaceTags );
+		},
+		protectUrlsRestore_ReplaceTags = function( tagMatch )
+		{
+			return tagMatch.replace( protectUrlAttributeRegex, '' ).replace( protectedAttributeRegex, '' );
+		};
+	// #### protectAttributes - END
 
 	CKEDITOR.plugins.add( 'wysiwygarea',
@@ -221,4 +244,7 @@
 									data = protectEvents( data );
 
+								// Protect src or href attributes.
+								data = protectUrls( data );
+
 								data =
 									editor.config.docType +
@@ -268,4 +294,7 @@
 								data = protectEventsRestore( data );
 
+								// Restore protected URLs.
+								data = protectUrlsRestore( data );
+
 								return data;
 							},
