Index: /trunk/FACT++/dim/README_v20.txt
===================================================================
--- /trunk/FACT++/dim/README_v20.txt	(revision 14579)
+++ /trunk/FACT++/dim/README_v20.txt	(revision 14580)
@@ -1,4 +1,4 @@
 
-                    DIM version 20r1 Release Notes
+                    DIM version 20r2 Release Notes
 
 Notes 1 and 2 for Unix Users only
@@ -17,5 +17,10 @@
 		Dns </dev/null >& dns.log &
 
-NOTE 3: The Version Number service provided by servers is now set to 2001.
+NOTE 3: The Version Number service provided by servers is now set to 2002.
+
+07/11/2012
+Changes for version 2002:
+    - Still problems with size=0 "no link" parameters - hopefully fixed.
+
 
 07/11/2012
Index: /trunk/FACT++/dim/dim/dim.h
===================================================================
--- /trunk/FACT++/dim/dim/dim.h	(revision 14579)
+++ /trunk/FACT++/dim/dim/dim.h	(revision 14580)
@@ -14,5 +14,5 @@
 #include "dim_common.h"
 
-#define DIM_VERSION_NUMBER 2001
+#define DIM_VERSION_NUMBER 2002
 
 
Index: /trunk/FACT++/dim/src/dic.c
===================================================================
--- /trunk/FACT++/dim/src/dic.c	(revision 14579)
+++ /trunk/FACT++/dim/src/dic.c	(revision 14580)
@@ -757,5 +757,5 @@
 				if(servp->fill_size > 0)
 					free( servp->fill_address );
-				fillp = 0;
+				fillp = serv_address;
 				if(serv_size > 0)
 				{
@@ -814,5 +814,5 @@
 	newp->user_routine = routine;
 	newp->tag = tag;
-	fillp = 0;
+	fillp = fill_addr;
 	if(fill_size > 0)
 	{
@@ -885,5 +885,5 @@
 	if(servp->fill_size > 0)
 		free( servp->fill_address );
-	fillp = 0;
+	fillp = fill_addr;
 	if(fill_size > 0)
 	{
Index: /trunk/FACT++/dim/src/diccpp.cxx
===================================================================
--- /trunk/FACT++/dim/src/diccpp.cxx	(revision 14579)
+++ /trunk/FACT++/dim/src/diccpp.cxx	(revision 14580)
@@ -168,4 +168,6 @@
 	itsName = new char[strlen(name)+1];
 	strcpy(itsName,name);
+	itsNolinkBuf = nolink;
+	itsNolinkSize = nolinksize;
 	if(nolinksize > 0)
 	{
@@ -253,4 +255,6 @@
 	itsName = new char[strlen(name)+1];
 	strcpy(itsName,name);
+	itsNolinkBuf = nolink;
+	itsNolinkSize = nolinksize;
 	if(nolinksize > 0)
 	{
@@ -311,4 +315,6 @@
 	itsName = new char[strlen(name)+1];
 	strcpy(itsName,name);
+	itsNolinkBuf = nolink;
+	itsNolinkSize = nolinksize;
 	if(nolinksize > 0)
 	{
@@ -400,4 +406,6 @@
 	itsName = new char[strlen(name)+1];
 	strcpy(itsName,name);
+	itsNolinkBuf = nolink;
+	itsNolinkSize = nolinksize;
 	if(nolinksize > 0)
 	{
@@ -687,7 +695,12 @@
 	itsDataOutSize = 0;
 	itsDataOut = 0;
-	itsNolinkBuf = new char[nolinksize];
+	itsNolinkBuf = nolink;
 	itsNolinkSize = nolinksize;
-	memcpy(itsNolinkBuf, nolink, nolinksize);
+	if(nolinksize > 0)
+	{
+		itsNolinkBuf = new char[nolinksize];
+		itsNolinkSize = nolinksize;
+		memcpy(itsNolinkBuf, nolink, nolinksize);
+	}
 	itsNameOut = new char[strlen(name)+1+10];
 	strcpy(itsNameOut,name);
