Index: firmware/FSC/src/w5100_spi_interface.c
===================================================================
--- firmware/FSC/src/w5100_spi_interface.c	(revision 11669)
+++ firmware/FSC/src/w5100_spi_interface.c	(revision 11670)
@@ -424,8 +424,9 @@
 	
 	// now calculate the offset address
-	// calculated according to W5100 datasheet page: 44
-	if ((offset + NumBytes) > (S0_RX_MASK + 1) )  // if data is turned over in RX-mem
-	{
-		upper_size = (S0_RX_MASK + 1) - offset;
+            // calculated according to W5100 datasheet page: 44
+            /*
+	if ((offset + NumBytes) > (S0_TX_MASK + 1) )  // if data is turned over in RX-mem
+	{
+		upper_size = (S0_TX_MASK + 1) - offset;
 		lower_size = NumBytes - upper_size;
 		for (U16 i = 0; i < upper_size; ++i)
@@ -441,5 +442,5 @@
 		for (U16 i = 0; i < lower_size; ++i)
 		{
-			w5100_write(S0_RX_BASE + i, string[upper_size+i]);
+			w5100_write(S0_TX_BASE + i, string[upper_size+i]);
 			//usart_write_str((pU08)"wr:");
 			//usart_write_U16_hex(S0_RX_BASE + i);
@@ -452,7 +453,7 @@
 	else // if not data turn over in RX-mem
 	{
-		for (U16 i = 0; i < NumBytes; ++i)
-		{
-			w5100_write(start_address + i, string[i]);
+	  */      for (U16 i = 0; i < NumBytes; ++i)
+		{
+			w5100_write(SO_TX_BASE + (offset + i)&SO_TX_MASK, string[i]);
 			//usart_write_str((pU08)"wr:");
 			//usart_write_U16_hex(start_address + i);
@@ -462,5 +463,5 @@
 
 		}
-	}
+	//}
 
 	// inform W5100 about how much data was written.
