diff --git a/src/ASFormatter.cpp b/src/ASFormatter.cpp
index 894c91e..41f4732 100755
--- a/src/ASFormatter.cpp
+++ b/src/ASFormatter.cpp
@@ -2596,7 +2596,11 @@ bool ASFormatter::isPointerOrReference() const
 	        || isCharImmediatelyPostReturn
 	        || isInTemplate
 	        || isCharImmediatelyPostTemplate
-	        || currentHeader == &AS_CATCH)
+	        || currentHeader == &AS_CATCH
+	        || currentHeader == &AS_FOREACH
+	        || currentHeader == &AS_FOREVER
+	        || currentHeader == &AS_QFOREACH
+	        || currentHeader == &AS_QFOREVER)
 		return true;
 
 	if (isBracketType(bracketTypeStack->back(), ARRAY_TYPE)
@@ -5273,6 +5277,9 @@ bool ASFormatter::addBracketsToStatement()
 	        && currentHeader != &AS_FOR
 	        && currentHeader != &AS_WHILE
 	        && currentHeader != &AS_DO
+	        && currentHeader != &AS_QFOREACH
+	        && currentHeader != &AS_QFOREVER
+	        && currentHeader != &AS_FOREVER
 	        && currentHeader != &AS_FOREACH)
 		return false;
 
diff --git a/src/ASResource.cpp b/src/ASResource.cpp
index 7ae9a1b..8a08922 100755
--- a/src/ASResource.cpp
+++ b/src/ASResource.cpp
@@ -142,6 +142,10 @@ const string ASResource::AS_COLON = string(":");
 const string ASResource::AS_COMMA = string(",");
 const string ASResource::AS_SEMICOLON = string(";");
 
+const string ASResource::AS_QFOREACH = string("Q_FOREACH");
+const string ASResource::AS_QFOREVER = string("Q_FOREVER");
+const string ASResource::AS_FOREVER = string("forever");
+
 const string ASResource::AS_FOREACH = string("foreach");
 const string ASResource::AS_LOCK = string("lock");
 const string ASResource::AS_UNSAFE = string("unsafe");
@@ -246,6 +250,11 @@ void ASResource::buildHeaders(vector<const string*>* headers, int fileType, bool
 	headers->push_back(&AS_TRY);
 	headers->push_back(&AS_CATCH);
 
+	headers->push_back(&AS_QFOREACH);
+	headers->push_back(&AS_QFOREVER);
+	headers->push_back(&AS_FOREVER);
+	headers->push_back(&AS_FOREACH);
+
 	if (fileType == C_TYPE)
 	{
 		headers->push_back(&_AS_TRY);		// __try
diff --git a/src/astyle.h b/src/astyle.h
index f2170e7..b0e83f6 100755
--- a/src/astyle.h
+++ b/src/astyle.h
@@ -257,6 +257,7 @@ class ASResource
 		static const string AS_NOT, AS_BIT_XOR, AS_BIT_OR, AS_BIT_AND, AS_BIT_NOT;
 		static const string AS_QUESTION, AS_COLON, AS_SEMICOLON, AS_COMMA;
 		static const string AS_ASM, AS__ASM__, AS_MS_ASM, AS_MS__ASM;
+		static const string AS_QFOREACH, AS_QFOREVER, AS_FOREVER;
 		static const string AS_FOREACH, AS_LOCK, AS_UNSAFE, AS_FIXED;
 		static const string AS_GET, AS_SET, AS_ADD, AS_REMOVE;
 		static const string AS_DELEGATE, AS_UNCHECKED;
