Index: /CKEditor/branches/features/pasting/_source/plugins/pastefromword/plugin.js
===================================================================
--- /CKEditor/branches/features/pasting/_source/plugins/pastefromword/plugin.js	(revision 4502)
+++ /CKEditor/branches/features/pasting/_source/plugins/pastefromword/plugin.js	(revision 4503)
@@ -127,4 +127,12 @@
 			if( child.value )
 				return child;
+			else if( child.name )
+			{
+				child = child.firstTextChild();
+				if( child )
+					return child;
+				else
+					continue;
+			}
 		}
 	};
@@ -159,10 +167,10 @@
 		styleText = this.attributes.style || '';
 
-		if( !/;$/.test( styleText ) )
-			styleText += ';';
-
-		this.attributes.style = isPrepend? 
-			addingStyleText += styleText : styleText += addingStyleText;
-	}
+		styleText = ( isPrepend ?
+		              [ addingStyleText, styleText ]
+					  : [ styleText, addingStyleText ] ).join( ';' );
+
+		this.attributes.style = styleText.replace( /^;|;(?=;)/, '' );
+	};
 
 	/**
@@ -415,8 +423,8 @@
 						// Build an stylish element first.
 						var styleElement = new CKEDITOR.htmlParser.element( null, {} ),
-							varialbes = {};
-
-						varialbes[ variableName ] = value;
-						elementMigrateFilter( styleDefinition, varialbes )( styleElement );
+							variables = {};
+
+						variables[ variableName ] = value;
+						elementMigrateFilter( styleDefinition, variables )( styleElement );
 						// Place the new element inside the existing span.
 						styleElement.children = element.children;
@@ -660,4 +668,5 @@
 										if( typeof style == 'object' )
 											style = style[ className ];
+										// Maintain style rules priorities.   
 										style && element.addStyle( style, true );
 									}
