         opts.cb(undefined, S); return
 
     if sync_string_cbs[opts.string_id]?
+        winston.debug("get_syncstring -- getting string_id=#{opts.string_id} -- already doing it")
         sync_string_cbs[opts.string_id].push(opts.cb)
         return
     else
-        cbs = sync_string_cbs[opts.string_id] = [opts.cb]
+        sync_string_cbs[opts.string_id] = [opts.cb]
 
     S = new SynchronizedString(opts.string_id, opts.max_len)
     async.series([

            f = (args...) =>
                for cb in @_get_string_queue[opts.string_id]
                    cb(args...)

            @_get_string_queue[opts.string_id] = [opts.cb]


    ], (err) =>
        if not err
            sync_strings[opts.string_id] = S
        cbs = sync_string_cbs[opts.string_id]
        delete sync_string_cbs[opts.string_id]
        for cb in cbs
            if err
