Index: /CKPackager/trunk/_source/includes/scriptcompressor.js
===================================================================
--- /CKPackager/trunk/_source/includes/scriptcompressor.js	(revision 3719)
+++ /CKPackager/trunk/_source/includes/scriptcompressor.js	(revision 3720)
@@ -57,5 +57,5 @@
 	lang[ Token.IN ] = ' in ';
 
-	// From http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Operators:Operator_Precedence
+	// From https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Operators/Operator_Precedence
 	var precedence = {};
 	precedence[ Token.DOT ] = 1;
@@ -931,5 +931,19 @@
 
 			case Token.HOOK :
-				writeNode( node = node.getFirstChild() );
+				node = node.getFirstChild();
+
+				var hasPrecedence = 
+						associativityRTL[ node.getType() ] 
+						&& precedence[ node.getType() ]
+						&& ( precedence[ Token.HOOK ] <= precedence[ node.getType() ] );
+
+				if ( hasPrecedence )
+					out( '(' );						
+
+				writeNode( node );
+
+				if ( hasPrecedence )
+					out( ')' );				
+
 				out( '?' );
 				writeNode( node = node.getNext() );
Index: /CKPackager/trunk/test/test.js
===================================================================
--- /CKPackager/trunk/test/test.js	(revision 3719)
+++ /CKPackager/trunk/test/test.js	(revision 3720)
@@ -281,5 +281,10 @@
 
 		[	"var a={'123':'123'};",
-			"var a={123:'123'};" ]
+			"var a={123:'123'};" ],
+
+		[	"var a=(b)?c:d;",
+			"var a=b?c:d;" ],
+
+		[	"var a=(b=c)?d:e;" ]
 	];
 
