addPeers()
        waitTotalConns(6)
 }
+
+func makeMagnet(t *testing.T, cl *Client, dir string, name string) string {
+       var err error
+       file, err := os.Create(dir + "/" + name)
+       require.NoError(t, err)
+       file.Write([]byte(name))
+       file.Close()    
+       mi := metainfo.MetaInfo{}
+       mi.SetDefaults()
+       info := metainfo.Info{ PieceLength: 256 * 1024 }
+       err = info.BuildFromFilePath(dir + "/" + name)
+       require.NoError(t, err)
+       mi.InfoBytes, err = bencode.Marshal(info)
+       require.NoError(t, err)
+       magnet := mi.Magnet(name, mi.HashInfoBytes()).String()
+       tr, err := cl.AddTorrent(&mi)
+       require.NoError(t, err)
+       assert.True(t, tr.Seeding())
+       return magnet
+}
+
+// https://github.com/anacrolix/torrent/issues/114
+func TestMultipleTorrentsWithEncryption(t *testing.T) {
+       cfg := TestingConfig
+       cfg.DisableUTP = true
+       cfg.Seed = true
+       cfg.DataDir = cfg.DataDir + "/server"
+       cfg.Debug = true
+       cfg.ForceEncryption = true
+       os.Mkdir(cfg.DataDir, 0755)
+       server, err := NewClient(&cfg)
+       defer server.Close()
+       require.NoError(t, err)
+       magnet1 := makeMagnet(t, server, cfg.DataDir, "test1")
+       makeMagnet(t, server, cfg.DataDir, "test2")
+       cfg = TestingConfig
+       cfg.DisableUTP = true
+       cfg.DataDir = cfg.DataDir + "/client"
+       cfg.Debug = true
+       cfg.ForceEncryption = true
+       client, err := NewClient(&cfg)
+       require.NoError(t, err)
+       defer client.Close()
+       tr, err := client.AddMagnet(magnet1)
+       require.NoError(t, err)
+       tr.AddPeers([]Peer{Peer{
+               IP: missinggo.AddrIP(server.ListenAddr()),
+               Port: missinggo.AddrPort(server.ListenAddr()),
+               }})
+       <- tr.GotInfo()
+       tr.DownloadAll()
+       client.WaitAll()
+}