diff --git a/src/sbbs3/listfile.cpp b/src/sbbs3/listfile.cpp
index d31eade917be2224bfe75237d5436bc8d06f20c9..8b99f3b268e1fd005f16b5b6cc4d4d3d37c7b93f 100644
--- a/src/sbbs3/listfile.cpp
+++ b/src/sbbs3/listfile.cpp
@@ -1030,12 +1030,14 @@ int sbbs_t::listfileinfo(uint dirnum, const char *filespec, long mode)
 							}
 						}
 					}
-					getnodedat(cfg.node_num,&thisnode,1);
-					action=NODE_DLNG;
-					t=now + gettimetodl(&cfg, f, cur_cps);
-					localtime_r(&t,&tm);
-					thisnode.aux=(tm.tm_hour*60)+tm.tm_min;
-					putnodedat(cfg.node_num,&thisnode); /* calculate ETA */
+					action = NODE_DLNG;
+					if(getnodedat(cfg.node_num,&thisnode,true) == 0) {
+						thisnode.action = action;
+						t=now + gettimetodl(&cfg, f, cur_cps);
+						localtime_r(&t,&tm);
+						thisnode.aux=(tm.tm_hour*60)+tm.tm_min;
+						putnodedat(cfg.node_num,&thisnode); /* calculate ETA */
+					}
 					start=time(NULL);
 					error=protocol(cfg.prot[i],XFER_DOWNLOAD,path,nulstr,false);
 					end=time(NULL);