diff --git a/ENGINE/g_decode_config.f b/ENGINE/g_decode_config.f
index eaa66df6a0fea8f5618bf0bcac300416f9fb6e7f..d95bab7f6c6ce7706726c37aaeff8e0076b2d999 100644
--- a/ENGINE/g_decode_config.f
+++ b/ENGINE/g_decode_config.f
@@ -89,6 +89,7 @@
       integer*4 did, plane, counter, signal, nsubadd, bsubadd, modtyp
       integer*4 lastroc, lastslot
       integer N_lines_read
+      integer num_commas,ii
 
       logical echo,debug,override
       character*26 lo,HI
@@ -144,7 +145,7 @@
 
             if(echo) call g_log_message(line)
 
-            llen = len(line)		! Remove comments (; or !)
+            llen = len(line) ! Remove comments (; or !)
             lpcom = index(line(1:llen),';')
             if(lpcom.gt.0) llen = lpcom - 1
             if(llen.gt.0) then
@@ -163,7 +164,7 @@
 
             if(llen.gt.0) then
                text = .false.
-               do lp=1,llen		! Shift to upper case
+               do lp=1,llen ! Shift to upper case
                   m = index(lo,line(lp:lp))
                   if(m.gt.0) then
                      line(lp:lp) = HI(m:m)
@@ -203,8 +204,22 @@
                      endif
                   endif
                else
-                  read(line(1:llen),'(4i15)') subadd, plane, counter,
+c determine number of commas in the line
+                  num_commas = 0
+                  do ii=1,llen
+                   if (  index(line(ii:ii),',') .gt. 0) then 
+                     num_commas = num_commas + 1
+                    endif
+                  enddo
+                  if ( num_commas .eq. 2) then
+                    read(line(1:llen),*) subadd, plane, counter
+                    signal = 0
+                  elseif ( num_commas  .eq. 3) then
+                    read(line(1:llen),*) subadd, plane, counter,
      $                 signal
+                  else
+                     write(*,*) ' can not read line', line(1:llen)
+                  endif
                   If(OK .and. (roc.ne.lastroc.or.slot.ne.lastslot)) Then
                      if(g_decode_slotpointer(roc,slot).le.0) then
                         g_decode_slotpointer(roc,slot) =
diff --git a/EXE/Makefile b/EXE/Makefile
index bf36e62013d9b3ee0d6ae8cfa6b67f32bcedb697..a67a94bf62644df856b71351fced9ea50d4d0005 100644
--- a/EXE/Makefile
+++ b/EXE/Makefile
@@ -83,7 +83,8 @@ ifeq ($(MYOS),Linux)
    ifeq ($(MYREALOS),Darwin)
       OTHERLIBS += -L$(CERN_ROOT)/lib -lpacklib -lc -lm
    else
-      OTHERLIBS += -L$(CERN_ROOT)/lib -lpacklib -lc -lm -lnsl
+      #OTHERLIBS += -L$(CERN_ROOT)/lib -lpacklib -lc -lm -lnsl
+      OTHERLIBS += $(CERN_ROOT)/lib/libpacklib.a $(CERN_ROOT)/lib/libkernlib.a -lnsl -lcrypt -ldl
    endif 
    OURLIBS := $(OURGENLIBS) $(LIBROOT)/libport.a
 endif
diff --git a/UTILSUBS/get_values.f b/UTILSUBS/get_values.f
index 73c7ad6084ed311b06b8358ee949693502afa1d1..047576ae82fc81a876e16c6c4b5cecf2a103ff71 100644
--- a/UTILSUBS/get_values.f
+++ b/UTILSUBS/get_values.f
@@ -73,13 +73,13 @@ c
               CALL squeeze(this,i)
               IF(this.eq.' ') goto 2222
 c              READ(this(1:i),'(z)',err=2222) v(j)
-              READ(this(1:i),'(z2)',err=2222) v(j)
+              READ(this(1:i),'(z1)',err=2222) v(j)
             elseif(oct) then
               this(last_oct:)=' ' 
               CALL squeeze(this,i)
               IF(this.eq.' ') goto 2222
 c              READ(this(1:i),'(o)',err=2222) v(j)
-              READ(this(1:i),'(o2)',err=2222) v(j)
+              READ(this(1:i),'(o1)',err=2222) v(j)
             elseif(bin) then
               this(last_binary:)=' '
               CALL squeeze(this,i)
@@ -98,7 +98,7 @@ c              READ(this(1:i),'(o)',err=2222) v(j)
               CALL squeeze(this,i)
               IF(this.eq.' ') goto 2222
 c              READ(this(1:i),'(i)',err=2222) v(j)
-              READ(this(1:i),'(i2)',err=2222) v(j)
+              READ(this(1:i),'(i1)',err=2222) v(j)
             endif
 c
 	    this= line(divider+1:)