diff --git a/CHANGELOG b/CHANGELOG
index 5ffe811..b9b80a0 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -8,6 +8,7 @@ Enhancements
 Bug Fixes
 
 * Fix some edge-cases when parsing invalid SQL statements.
+* Fix indentation of LIMIT (by romainr, pr321).
 
 Internal Changes
 
diff --git a/sqlparse/keywords.py b/sqlparse/keywords.py
index 1fd07c1..d68b4ae 100644
--- a/sqlparse/keywords.py
+++ b/sqlparse/keywords.py
@@ -167,6 +167,7 @@ KEYWORDS = {
     'COMMIT': tokens.Keyword.DML,
     'COMMITTED': tokens.Keyword,
     'COMPLETION': tokens.Keyword,
+    'CONCURRENTLY': tokens.Keyword,
     'CONDITION_NUMBER': tokens.Keyword,
     'CONNECT': tokens.Keyword,
     'CONNECTION': tokens.Keyword,

diff --git a/tests/test_regressions.py b/tests/test_regressions.py
index cf88419..cc553c2 100644
--- a/tests/test_regressions.py
+++ b/tests/test_regressions.py
@@ -343,3 +343,16 @@ def test_issue315_utf8_by_default():
     if PY2:
         tformatted = tformatted.decode('utf-8')
     assert formatted == tformatted
+
+
+def test_issue322_concurrently_is_keyword():
+    s = 'CREATE INDEX CONCURRENTLY myindex ON mytable(col1);'
+    p = sqlparse.parse(s)[0]
+
+    assert len(p.tokens) == 12
+    assert p.tokens[0].ttype is T.Keyword.DDL  # CREATE
+    assert p.tokens[2].ttype is T.Keyword      # INDEX
+    assert p.tokens[4].ttype is T.Keyword      # CONCURRENTLY
+    assert p.tokens[4].value == 'CONCURRENTLY'
+    assert isinstance(p.tokens[6], sql.Identifier)
+    assert p.tokens[6].value == 'myindex'

Support CONCURRENTLY keyword in CREATE INDEX statements
When parsing a statement like `CREATE INDEX CONCURRENTLY name ON ...`, "CONCURRENTLY name" is returned as a single identifier 
tests/test_regressions.py::test_issue322_concurrently_is_keyword
tests/test_regressions.py::test_issue9 tests/test_regressions.py::test_issue13 tests/test_regressions.py::test_issue26[--hello] tests/test_regressions.py::test_issue26[-- tests/test_regressions.py::test_issue26[--hello\n] tests/test_regressions.py::test_issue26[--] tests/test_regressions.py::test_issue26[--\n] tests/test_regressions.py::test_issue34[create] tests/test_regressions.py::test_issue34[CREATE] tests/test_regressions.py::test_issue35 tests/test_regressions.py::test_issue38 tests/test_regressions.py::test_issue39 tests/test_regressions.py::test_issue40 tests/test_regressions.py::test_issue78[get_name-z-select tests/test_regressions.py::test_issue78[get_real_name-y-select tests/test_regressions.py::test_issue78[get_parent_name-x-select tests/test_regressions.py::test_issue78[get_alias-z-select tests/test_regressions.py::test_issue78[get_typecast-text-select tests/test_regressions.py::test_issue83 tests/test_regressions.py::test_comment_encoding_when_reindent tests/test_regressions.py::test_parse_sql_with_binary tests/test_regressions.py::test_dont_alias_keywords tests/test_regressions.py::test_format_accepts_encoding tests/test_regressions.py::test_stream tests/test_regressions.py::test_issue90 tests/test_regressions.py::test_except_formatting tests/test_regressions.py::test_null_with_as tests/test_regressions.py::test_issue190_open_file tests/test_regressions.py::test_issue193_splitting_function tests/test_regressions.py::test_issue194_splitting_function tests/test_regressions.py::test_issue186_get_type tests/test_regressions.py::test_issue212_py2unicode tests/test_regressions.py::test_issue213_leadingws tests/test_regressions.py::test_issue227_gettype_cte tests/test_regressions.py::test_issue207_runaway_format tests/test_regressions.py::test_token_next_doesnt_ignore_skip_cm tests/test_regressions.py::test_issue284_as_grouping[SELECT tests/test_regressions.py::test_issue284_as_grouping[AS] tests/test_regressions.py::test_issue315_utf8_by_default