diff --git a/flowspec/junos.py b/flowspec/junos.py
index 1015daad8965002165211c65775f54c0f28785e6..a6ae8a047edfcf820f54b5d7504710ffb2d9af7e 100644
--- a/flowspec/junos.py
+++ b/flowspec/junos.py
@@ -205,6 +205,8 @@ def get_ports(rule):
             if result != '':
               result += ','
             result += 'srcport' + translate_ports(rule.sourceport)
+    if result != '':
+       result += ','
     return result
 
 def translate_frag(fragment_string): #TODO get number mapping right, order matters!
@@ -219,11 +221,12 @@ def translate_frag(fragment_string): #TODO get number mapping right, order matte
     elif fragment_string == "not-a-fragment":
       result="!:02";
     else:
-      result=":00" # TODO
+      #result="00" # TODO
+      result=str(fragment_string) # TODO
     return result
 
 def translate_frag_list(frag_list):
-    result = ",".join([translate_frag(frag) for frag in frag_list]) # needs to be sorted
+    result = ",".join([translate_frag(str(frag)) for frag in frag_list]) # needs to be sorted
     return result
 
 def get_frag(rule):
@@ -231,7 +234,7 @@ def get_frag(rule):
     if rule.fragmenttype:
       tmp = translate_frag_list(rule.fragmenttype.all())
       if tmp != "":
-        result = ',frag'+tmp
+        result = 'frag'+tmp+','
     return result
 
 def create_junos_name(rule):
@@ -245,8 +248,7 @@ def create_junos_name(rule):
     # ports
     name += get_ports(rule)
     #frag = ''
-    frag = get_frag(rule)
-    name += frag
+    name += get_frag(rule)
     if name[-1] == ',':
         name = name[:-1]
     return name
diff --git a/flowspec/snmpstats.py b/flowspec/snmpstats.py
index f7cffca5c350dc24dffeb4be0f66e5c5255cc9a8..668643986744cb5e3d18e01d09cfdf6d11377125 100644
--- a/flowspec/snmpstats.py
+++ b/flowspec/snmpstats.py
@@ -207,19 +207,18 @@ def helper_stats_store_parse_ts(ts_string):
 def helper_rule_ts_parse(ts_string):
   try:
     ts = datetime.strptime(ts_string, '%Y-%m-%d %H:%M:%S+00:00') # TODO TZ offset assumed to be 00:00
-  except Exception as e:
-    logger.info("helper_rule_ts_parse(): ts_string="+str(ts_string)+": got exception "+str(e))
-    ts = None
-
-  if ts==None: # other db may hav other time fmt:
-    logger.info("helper_rule_ts_parse(): trying with milli seconds fmt")
+  except ValueError as e:
+    #logger.info("helper_rule_ts_parse(): trying with milli seconds fmt")
     try:
       ts = datetime.strptime(ts_string, '%Y-%m-%d %H:%M:%S.%f+00:00') # TODO TZ offset assumed to be 00:00
     except Exception as e:
-      logger.info("helper_rule_ts_parse(): ts_string="+str(ts_string)+": got exception "+str(e))
+      logger.info("helper_rule_ts_parse(): ts_string="+str(ts_string)+": got exception "+str(type(e))+": "+str(e))
       ts = None
-    
-  logger.info("helper_rule_ts_parse(): => ts="+str(ts))
+  except Exception as e:
+    logger.info("helper_rule_ts_parse(): ts_string="+str(ts_string)+": got exception "+str(type(e))+": "+str(e))
+    ts = None
+
+  #logger.info("helper_rule_ts_parse(): => ts="+str(ts))
   return ts
 
 def process_new_snmp_measurements__low_level(nowstr, samplecount, newdata, history):