diff --git a/check_source/check_style_c.py b/check_source/check_style_c.py
index 8a931f3c8cfb4d68cd4d303d92d1767b57031972..3a26225cfbbc34e5368b515d0a5bd57705e5855e 100755
--- a/check_source/check_style_c.py
+++ b/check_source/check_style_c.py
@@ -214,6 +214,12 @@ def extract_to_linestart(index):
     return "".join(ls)
 
 
+def extract_ws_indent(index):
+    # could optimize this
+    text = extract_to_linestart(index)
+    return text[:len(text) - len(text.lstrip("\t"))]
+
+
 def extract_statement_if(index_kw):
     # assert(tokens[index_kw].text == "if")
 
@@ -383,6 +389,34 @@ def blender_check_kw_if(index_kw_start, index_kw, index_kw_end):
                 warning("E109", "multi-line if should use a brace '%s (\\n\\n) statement;'" %
                         tokens[index_kw].text, index_kw, index_kw_end)
 
+        # check for correct single line use & indentation
+        if not (tokens[index_next].type == Token.Punctuation and tokens[index_next].text == ";"):
+            if tokens[index_next].type == Token.Keyword and tokens[index_next].text in {"if", "while", "for"}:
+                    ws_kw = extract_ws_indent(index_kw)
+                    ws_end = extract_ws_indent(index_next)
+                    if len(ws_kw) + 1 != len(ws_end):
+                        warning("E200", "bad single line indent '%s (...) {'" %
+                                tokens[index_kw].text, index_kw, index_next)
+                    del ws_kw, ws_end
+            else:
+                index_end = tk_advance_to_token(index_next, 1, ";", Token.Punctuation)
+                if tokens[index_kw].line != tokens[index_end].line:
+                    # check for:
+                    # if (a)
+                    # b;
+                    #
+                    # should be:
+                    #
+                    # if (a)
+                    #     b;
+                    ws_kw = extract_ws_indent(index_kw)
+                    ws_end = extract_ws_indent(index_end)
+                    if len(ws_kw) + 1 != len(ws_end):
+                        warning("E201", "bad single line indent '%s (...) {'" %
+                                tokens[index_kw].text, index_kw, index_end)
+                    del ws_kw, ws_end
+                del index_end
+
     # multi-line statement
     if (tokens[index_kw].line != tokens[index_kw_end].line):
         # check for: if (a &&
@@ -725,7 +759,7 @@ def blender_check_operator(index_start, index_end, op_text, is_cpp):
         elif op_text == "&":
             pass  # TODO, check if this is a pointer reference or not
         elif op_text == "*":
-           # This check could be improved, its a bit fuzzy
+            # This check could be improved, its a bit fuzzy
             if     ((tokens[index_start - 1].type in Token.Number) or
                     (tokens[index_start + 1].type in Token.Number)):
                 warning("E130", "no space around operator '%s'" % op_text, index_start, index_end)