diff --git a/src/guide/components.md b/src/guide/components.md
index c3cf030abd..4b9ca3534b 100644
--- a/src/guide/components.md
+++ b/src/guide/components.md
@@ -145,7 +145,7 @@ Vue.js template engine is DOM-based and uses native parser that comes with the b
- `table` can only contain `thead`, `tbody`, `tfoot` and `tr`, and these elements should be direct cildren of `table`
- `tr` can only contain `th` and `td`, and these elements should be direct children of `tr`
-In practive these restriction can cause unexpected behavior. Although in simple cases it might appear to work, you can not rely on custom elements being expanded before browser validation. E.g. `` is not a valid template even if `my-select` component eventually expands to ``.
+In practice these restriction can cause unexpected behavior. Although in simple cases it might appear to work, you can not rely on custom elements being expanded before browser validation. E.g. `` is not a valid template even if `my-select` component eventually expands to ``.
Another consequence is that you can not use custom tags (including custom elements and special tags like ``, `` and ``) inside of `ul`, `select`, `table` and other elements with similar restrictions. Custom tags will be hoisted out and thus not render properly.