fix multiple breakpoints at one location in IE9
diff --git a/development/org.eclipse.wst.jsdt.debug.ie/IECrossfireInstaller/IECrossfireInstaller.vdproj b/development/org.eclipse.wst.jsdt.debug.ie/IECrossfireInstaller/IECrossfireInstaller.vdproj
index b69da68..5467fd1 100644
--- a/development/org.eclipse.wst.jsdt.debug.ie/IECrossfireInstaller/IECrossfireInstaller.vdproj
+++ b/development/org.eclipse.wst.jsdt.debug.ie/IECrossfireInstaller/IECrossfireInstaller.vdproj
@@ -21,13 +21,13 @@
         }
         "Entry"
         {
-        "MsmKey" = "8:_4275B31F88A8439F8CD34C85D3A1D2F6"
+        "MsmKey" = "8:_0C04D36F65A14D88BE7C0F4AD05A2393"
         "OwnerKey" = "8:_68B2C602B4B448ADBFC58961A342D06B"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_4275B31F88A8439F8CD34C85D3A1D2F6"
+        "MsmKey" = "8:_0C04D36F65A14D88BE7C0F4AD05A2393"
         "OwnerKey" = "8:_A558BCE26AC6426C9ABA48959A6EB3C6"
         "MsmSig" = "8:_UNDEFINED"
         }
@@ -245,7 +245,7 @@
         "Name" = "8:Microsoft Visual Studio"
         "ProductName" = "8:Crossfire Server for Internet Explorer"
         "ProductCode" = "8:{8454AEA7-EC58-4709-BFED-85CCB406E206}"
-        "PackageCode" = "8:{79D31176-022B-42A2-9F4B-4D9C50AE015A}"
+        "PackageCode" = "8:{A314CFEF-5F02-42F0-99B7-3FAFE478148F}"
         "UpgradeCode" = "8:{DC2603D4-1885-4F24-B9B6-5EB74FF9D579}"
         "AspNetVersion" = "8:4.0.30319.0"
         "RestartWWWService" = "11:FALSE"
@@ -3759,11 +3759,11 @@
         }
         "MergeModule"
         {
-            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_4275B31F88A8439F8CD34C85D3A1D2F6"
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_0C04D36F65A14D88BE7C0F4AD05A2393"
             {
             "UseDynamicProperties" = "11:TRUE"
             "IsDependency" = "11:TRUE"
-            "SourcePath" = "8:Microsoft_VC100_DebugCRT_x86.msm"
+            "SourcePath" = "8:Microsoft_VC100_CRT_x86.msm"
                 "Properties"
                 {
                 }
diff --git a/development/org.eclipse.wst.jsdt.debug.ie/IECrossfireInstaller/Release/IECrossfireInstaller.msi b/development/org.eclipse.wst.jsdt.debug.ie/IECrossfireInstaller/Release/IECrossfireInstaller.msi
index b64dbab..e3749bc 100644
--- a/development/org.eclipse.wst.jsdt.debug.ie/IECrossfireInstaller/Release/IECrossfireInstaller.msi
+++ b/development/org.eclipse.wst.jsdt.debug.ie/IECrossfireInstaller/Release/IECrossfireInstaller.msi
Binary files differ
diff --git a/development/org.eclipse.wst.jsdt.debug.ie/IECrossfireServer/CrossfireContext.cpp b/development/org.eclipse.wst.jsdt.debug.ie/IECrossfireServer/CrossfireContext.cpp
index 2aae456..dbe025b 100644
--- a/development/org.eclipse.wst.jsdt.debug.ie/IECrossfireServer/CrossfireContext.cpp
+++ b/development/org.eclipse.wst.jsdt.debug.ie/IECrossfireServer/CrossfireContext.cpp
@@ -343,6 +343,15 @@
 		return false;
 	}
 
+	/*
+	 * Feature of JScript9.  A distinct breakpoint is created for each breakpoint that
+	 * is set at a given location.  As a result, setting multiple breakpoints at a location
+	 * can cause multiple breaks to occur when the location is hit.  To ensure that a
+	 * location never has more than one breakpoint, delete the breakpoint (if any) at the
+	 * location before setting the new breakpoint.
+	 */
+	codeContext->SetBreakPoint(BREAKPOINT_DELETED);
+
 	hr = codeContext->SetBreakPoint(enabled ? BREAKPOINT_ENABLED : BREAKPOINT_DISABLED);
 	if (FAILED(hr)) {
 		Logger::error("CrossfireContext.setBreakpointEnabled(): SetBreakPoint() failed", hr);
@@ -535,6 +544,15 @@
 		return false;
 	}
 
+	/*
+	 * Feature of JScript9.  A distinct breakpoint is created for each breakpoint that
+	 * is set at a given location.  As a result, setting multiple breakpoints at a location
+	 * causes multiple breaks to occur when the location is hit.  To ensure that a
+	 * location never has more than one breakpoint, delete the breakpoint (if any) at the
+	 * location before setting the new breakpoint.
+	 */
+	codeContext->SetBreakPoint(BREAKPOINT_DELETED);
+
 	hr = codeContext->SetBreakPoint(lineBp->isEnabled() ? BREAKPOINT_ENABLED : BREAKPOINT_DISABLED);
 	if (FAILED(hr)) {
 		Logger::error("CrossfireContext.setBreakpoint(): SetBreakPoint() failed", hr);
@@ -1037,7 +1055,7 @@
 				}
 
 				/*
-				 * Bug in IE9.  For some reason the enumPropertyInfo->Next() invocation below fails
+				 * Bug in JScript9.  For some reason the enumPropertyInfo->Next() invocation below fails
 				 * when it is the first invocation on a debug property info enum from a stack frame.
 				 * The workaround is to warm up the enumeration by first getting its count.
 				 */