diff --git a/flow/probes/ovsmirror.go b/flow/probes/ovsmirror.go
index <HASH>..<HASH> 100644
--- a/flow/probes/ovsmirror.go
+++ b/flow/probes/ovsmirror.go
@@ -30,7 +30,7 @@ import (
 	"github.com/skydive-project/skydive/common"
 	"github.com/skydive-project/skydive/graffiti/graph"
 	"github.com/skydive-project/skydive/logging"
-	"github.com/skydive-project/skydive/ovs"
+	ovsdb "github.com/skydive-project/skydive/ovs"
 	"github.com/skydive-project/skydive/probe"
 	"github.com/skydive-project/skydive/topology"
 	op "github.com/skydive-project/skydive/topology/probes/ovsdb"
@@ -310,6 +310,10 @@ func (o *OvsMirrorProbesHandler) RegisterProbeOnPort(n *graph.Node, portUUID str
 		node:    n,
 	}
 
+	if id, _ := n.GetFieldString("ExtID.skydive-probe-id"); id != "" {
+		return fmt.Errorf("Mirror on mirrored interface is not allowed")
+	}
+
 	if err := o.registerProbeOnPort(probe, portUUID); err != nil {
 		return err
 	}
ovs: do not start mirror on mirror port