-  {$ifdef mswindows}\r
-    TInetSockAddr = packed Record\r
-      family:Word;\r
-      port  :Word;\r
-      addr  :uint32;\r
-      pad   :array [1..8] of byte;\r
-    end;\r
-    {$ifdef ipv6}\r
-\r
-      TInetSockAddr6 = packed record\r
-        sin6_family: word;\r
-        sin6_port: word;\r
-        sin6_flowinfo: uint32;\r
-        sin6_addr: tin6_addr;\r
-        sin6_scope_id: uint32;\r
-      end;\r
+  {zipplet 20170204: FPC 3.0.0 changed the definition of TInetSockAddr:\r
+    - http://www.freepascal.org/docs-html/rtl/sockets/tinetsockaddr.html\r
+    - http://www.freepascal.org/docs-html/rtl/sockets/sockaddr_in.html\r
+   Due to this, TInetSockAddr -> TLInetSockAddr4 / TLInetSockAddr6\r
+   Using our own types no matter what OS or compiler version will prevent future problems.\r
+   Adding "4" to non IPv6 record names improves code clarity }\r
+\r
+  {$ifndef mswindows}\r
+    //zipplet 20170204: Do we still need to support ver1_0? Perhaps a cleanup is in order.\r
+    //For now keep supporting it for compatibility.\r
+    {$ifdef ver1_0}\r
+      cuint16 = word;\r
+      cuint32 = dword;\r
+      sa_family_t = word;\r