diff -purN -x CVS -x '*~' -x '.*' -x 'obj-*' srtp-pristine/config.hw srtp/config.hw
--- srtp-pristine/config.hw	2007-05-23 13:40:21.000000000 -0400
+++ srtp/config.hw	2009-04-22 17:58:01.000000000 -0400
@@ -1,7 +1,7 @@
 /* crypto/include/config.h.  Generated by configure.  */
 /* config_in.h.  Generated from configure.in by autoheader.  */
 
-#ifdef (_MSC_VER >= 1400)
+#if (_MSC_VER >= 1400)
 # define HAVE_RAND_S	1
 #endif
 
diff -purN -x CVS -x '*~' -x '.*' -x 'obj-*' srtp-pristine/crypto/cipher/aes_icm.c srtp/crypto/cipher/aes_icm.c
--- srtp-pristine/crypto/cipher/aes_icm.c	2006-07-18 15:45:46.000000000 -0400
+++ srtp/crypto/cipher/aes_icm.c	2009-04-22 17:58:01.000000000 -0400
@@ -210,7 +210,7 @@ aes_icm_set_octet(aes_icm_ctx_t *c,
 							  ((high32(octet_num) & 0x0f)<<(32-4)) |
 							   (low32(octet_num) >> 4));
 #else
-  int tail_num       = octet_num % 16;
+  int tail_num       = (int)(octet_num % 16);
   uint64_t block_num = octet_num / 16;
 #endif
   
diff -purN -x CVS -x '*~' -x '.*' -x 'obj-*' srtp-pristine/install-win.bat srtp/install-win.bat
--- srtp-pristine/install-win.bat	1969-12-31 19:00:00.000000000 -0500
+++ srtp/install-win.bat	2009-04-22 17:58:01.000000000 -0400
@@ -0,0 +1,31 @@
+:: Installs from srtp windows build directory to directory specified on
+:: command line
+
+
+@if "%1"=="" (
+	echo "Usage: %~nx0 destdir"
+	exit /b 1
+) else (
+	set destdir=%1
+)
+
+@if not exist %destdir% (
+   echo %destdir% not found
+   exit /b 1
+)
+
+@for %%d in (include\srtp.h crypto\include\crypto.h Debug\srtp.lib Release\srtp.lib) do (
+	if not exist "%%d" (
+	   echo "%%d not found: are you in the right directory?"
+	   exit /b 1
+	)
+)
+
+mkdir %destdir%\include
+mkdir %destdir%\include\srtp
+mkdir %destdir%\lib
+
+copy include\*.h %destdir%\include\srtp
+copy crypto\include\*.h %destdir%\include\srtp
+copy Release\srtp.lib %destdir%\lib\srtp.lib
+copy Debug\srtp.lib %destdir%\lib\srtpd.lib
diff -purN -x CVS -x '*~' -x '.*' -x 'obj-*' srtp-pristine/srtp/ekt.c srtp/srtp/ekt.c
--- srtp-pristine/srtp/ekt.c	2007-06-15 14:36:09.000000000 -0400
+++ srtp/srtp/ekt.c	2009-04-22 18:47:06.000000000 -0400
@@ -91,27 +91,27 @@ ekt_octets_after_base_tag(ekt_stream_t e
 }
 
 inline ekt_spi_t
-srtcp_packet_get_ekt_spi(const void *packet_start, unsigned pkt_octet_len) {
-  void *spi_location;
+srtcp_packet_get_ekt_spi(const uint8_t *packet_start, unsigned pkt_octet_len) {
+  const uint8_t *spi_location;
   
   spi_location = packet_start + (pkt_octet_len - EKT_SPI_LEN);
   
-  return *((ekt_spi_t *)spi_location);
+  return *((const ekt_spi_t *)spi_location);
 }
 
 inline uint32_t
-srtcp_packet_get_ekt_roc(const void *packet_start, unsigned pkt_octet_len) {
-  void *roc_location;
+srtcp_packet_get_ekt_roc(const uint8_t *packet_start, unsigned pkt_octet_len) {
+  const uint8_t *roc_location;
   
   roc_location = packet_start + (pkt_octet_len - EKT_OCTETS_AFTER_ROC);
   
-  return *((uint32_t *)roc_location);
+  return *((const uint32_t *)roc_location);
 }
 
-inline void *
-srtcp_packet_get_emk_location(const void *packet_start, 
+inline const uint8_t *
+srtcp_packet_get_emk_location(const uint8_t *packet_start, 
 			      unsigned pkt_octet_len) {
-  void *location;
+  const uint8_t *location;
   
   location = packet_start + (pkt_octet_len - EKT_OCTETS_AFTER_BASE_TAG);
 
@@ -161,7 +161,7 @@ srtp_stream_init_from_ekt(srtp_stream_t 
 			  const void *srtcp_hdr,
 			  unsigned pkt_octet_len) {
   err_status_t err;
-  uint8_t *master_key;
+  const uint8_t *master_key;
   srtp_policy_t srtp_policy;
   unsigned master_key_len;
   uint32_t roc;
@@ -179,7 +179,7 @@ srtp_stream_init_from_ekt(srtp_stream_t 
 
   /* decrypt the Encrypted Master Key field */
   master_key = srtcp_packet_get_emk_location(srtcp_hdr, pkt_octet_len);
-  aes_decrypt_with_raw_key(master_key, stream->ekt->data->ekt_dec_key);
+  aes_decrypt_with_raw_key((void*)master_key, stream->ekt->data->ekt_dec_key);
 
   /* set the SRTP ROC */
   roc = srtcp_packet_get_ekt_roc(srtcp_hdr, pkt_octet_len);
@@ -201,7 +201,7 @@ ekt_write_data(ekt_stream_t ekt,
   uint32_t roc;
   uint16_t isn;
   unsigned emk_len;
-  void *packet;
+  uint8_t *packet;
 
   /* if the pointer ekt is NULL, then EKT is not in effect */
   if (!ekt) {
@@ -211,7 +211,7 @@ ekt_write_data(ekt_stream_t ekt,
 
   /* write zeros into the location of the base tag */
   octet_string_set_to_zero(base_tag, base_tag_len);
-  packet = base_tag + base_tag_len;
+  packet = (uint8_t*)base_tag + base_tag_len;
 
   /* copy encrypted master key into packet */
   emk_len = ekt_octets_after_base_tag(ekt);
@@ -221,14 +221,14 @@ ekt_write_data(ekt_stream_t ekt,
   packet += emk_len;
 
   /* copy ROC into packet */
-  roc = pkt_index >> 16;
+  roc = (uint32_t)(pkt_index >> 16);
   *((uint32_t *)packet) = be32_to_cpu(roc);
   debug_print(mod_srtp, "writing EKT ROC: %s,", 
 	      octet_string_hex_string(packet, sizeof(roc)));
   packet += sizeof(roc);
 
   /* copy ISN into packet */
-  isn = pkt_index;
+  isn = (uint16_t)pkt_index;
   *((uint16_t *)packet) = htons(isn);
   debug_print(mod_srtp, "writing EKT ISN: %s,", 
 	      octet_string_hex_string(packet, sizeof(isn)));
diff -purN -x CVS -x '*~' -x '.*' -x 'obj-*' srtp-pristine/srtp.def srtp/srtp.def
--- srtp-pristine/srtp.def	2006-05-22 16:46:21.000000000 -0400
+++ srtp/srtp.def	2009-04-22 17:58:01.000000000 -0400
@@ -89,4 +89,3 @@ aes_icm_encrypt_ismacryp
 aes_icm_alloc_ismacryp
 crypto_alloc
 crypto_free
-\ No newline at end of file
\ No newline at end of file
diff -purN -x CVS -x '*~' -x '.*' -x 'obj-*' srtp-pristine/srtp.sln srtp/srtp.sln
--- srtp-pristine/srtp.sln	1969-12-31 19:00:00.000000000 -0500
+++ srtp/srtp.sln	2009-04-22 17:58:01.000000000 -0400
@@ -0,0 +1,26 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "srtp", "srtp.vcproj", "{EEF031CB-FED8-451E-A471-91EC8D4F6750}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug Dll|Win32 = Debug Dll|Win32
+		Debug|Win32 = Debug|Win32
+		Release Dll|Win32 = Release Dll|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug Dll|Win32.ActiveCfg = Debug Dll|Win32
+		{EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug Dll|Win32.Build.0 = Debug Dll|Win32
+		{EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|Win32.Build.0 = Debug|Win32
+		{EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release Dll|Win32.ActiveCfg = Release Dll|Win32
+		{EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release Dll|Win32.Build.0 = Release Dll|Win32
+		{EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|Win32.ActiveCfg = Release|Win32
+		{EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff -purN -x CVS -x '*~' -x '.*' -x 'obj-*' srtp-pristine/srtp.vcproj srtp/srtp.vcproj
--- srtp-pristine/srtp.vcproj	2006-05-22 16:46:21.000000000 -0400
+++ srtp/srtp.vcproj	2009-04-22 17:58:01.000000000 -0400
@@ -49,7 +49,7 @@
 				PreprocessorDefinitions="WIN32;_DEBUG;_LIB;HAVE_CONFIG_H"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
+				RuntimeLibrary="1"
 				StructMemberAlignment="0"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
@@ -116,7 +116,7 @@
 				Name="VCCLCompilerTool"
 				AdditionalIncludeDirectories="crypto/include;include"
 				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
+				RuntimeLibrary="0"
 				StructMemberAlignment="0"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
@@ -324,6 +324,10 @@
 			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
 			>
 			<File
+				RelativePath=".\srtp\ekt.c"
+				>
+			</File>
+			<File
 				RelativePath=".\srtp\srtp.c"
 				>
 			</File>
@@ -484,10 +488,6 @@
 				>
 			</File>
 			<File
-				RelativePath=".\crypto\include\crypto_math.h"
-				>
-			</File>
-			<File
 				RelativePath=".\crypto\include\crypto_types.h"
 				>
 			</File>
@@ -500,6 +500,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\include\ekt.h"
+				>
+			</File>
+			<File
 				RelativePath=".\crypto\include\err.h"
 				>
 			</File>
@@ -516,10 +520,6 @@
 				>
 			</File>
 			<File
-				RelativePath=".\crypto\include\kernel_compat.h"
-				>
-			</File>
-			<File
 				RelativePath=".\crypto\include\key.h"
 				>
 			</File>
@@ -548,10 +548,6 @@
 				>
 			</File>
 			<File
-				RelativePath=".\include\rtp.h"
-				>
-			</File>
-			<File
 				RelativePath=".\crypto\include\sha1.h"
 				>
 			</File>
@@ -560,15 +556,15 @@
 				>
 			</File>
 			<File
-				RelativePath=".\crypto\include\stat.h"
+				RelativePath=".\include\srtp_priv.h"
 				>
 			</File>
 			<File
-				RelativePath=".\include\ut_sim.h"
+				RelativePath=".\crypto\include\stat.h"
 				>
 			</File>
 			<File
-				RelativePath=".\crypto\include\xfm.h"
+				RelativePath=".\include\ut_sim.h"
 				>
 			</File>
 		</Filter>
@@ -579,6 +575,10 @@
 			>
 		</Filter>
 		<File
+			RelativePath=".\config.hw"
+			>
+		</File>
+		<File
 			RelativePath=".\srtp.def"
 			>
 		</File>